Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.python > #2946
| From | Pierre Maurette <maurette.pierre@free.fr> |
|---|---|
| Newsgroups | fr.comp.lang.python |
| Subject | Re: conversion en string raw |
| Date | 2016-10-19 09:05 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <mn.9a217e0a2cb3094d.79899@free.fr> (permalink) |
| References | <580667da$0$3334$426a74cc@news.free.fr> |
plp :
> Bonjour,
>
> J'écris un script pour supprimer les spams directement sur une boite IMAP.
> Cela fonctionne mais pour l'instant, je stocke mes expressions régulières
> directement dans mon code, dans une liste du style
>
> liste_regex = [
> r'.*@vgtru.*',
> r'.*@billgst.*',
> r'.*@.*mademoiselle.*shopping.*',
> r'.*@.*canalprivilege.*',
> r'.*@.*design.*atylia.*',
> r'.*@.*news.*info2pro.*'
> ]
>
> Je fais ensuite un re.match() sur les mails avec cette liste et cela
> fonctionne.
>
> Maintenant, je voudrais sortir les regex de mon script pour les stocker dans
> un fichier texte (ou une bdd) comme cela :
> .*@vgtru.*
> .*@billgst.*
> .*@.*mademoiselle.*shopping.*
> .*@.*canalprivilege.*
> .*@.*design.*atylia.*
> .*@.*news.*info2pro.*
>
> J'arrive évidemment à lire le fichier txt et à alimenter la liste mais je
> n'arrive pas à obtenir le format raw apporté par le r'' et donc mon
> re.match() ne fonctionne plus.
>
> Avez-vous une solution ?
Justement l'avantage du fichier txt en entrée de données est de ne pas
avoir à se "préoccuper du r". C'est un truc que j'utilise énormément
pour pouvoir par exemple entrer des chemins par copier-coller. En
particulier des chemins Windows sans modifier les antislashes, et
encore plus en particulier quand un antislash est final.
Peut-être avez-vous loupé (trop réfléchi ?) votre fichier .txt ?
Peut-être le lisez-vous mal ? C'est peut-être un des cas où un 'r' est
nécessaire, et non un 'rb'.
Par curiosité, j'ai testé (sous Windows et Linux, en 2.7.x et 3.4.x,
mêmes résultats):
fichier test.txt:
.*@vgtru\t.*
.*@billgst.*
.*@vgtru\t.*
.*@billgst.*
.*@.*mademoiselle.*shopping.*
.*@.*canalprivilege.*
.*@.*design.*atylia.*
.*@.*news.*info2pro.*
fichier test.py:
#!/usr/bin python3
# -*- coding: utf-8 -*-
import sys
print(sys.version)
liste_regex = [
r'.*@vgtru\t.*',
r'.*@billgst.*',
'.*@vgtru\t.*',
'.*@billgst.*',
r'.*@.*mademoiselle.*shopping.*',
r'.*@.*canalprivilege.*',
r'.*@.*design.*atylia.*',
r'.*@.*news.*info2pro.*'
]
with open('test.txt', 'r') as fichier:
for n, line in enumerate(fichier.readlines()):
print('%s [ %s (%s) | %s (%s) ]' % (line.strip() ==
liste_regex[n], line.strip(), type(line.strip()), liste_regex[n] ,
type(liste_regex[n])))
Par rapport à votre exemple, j'ai ajouté un \t qui justifie le r''.
J'ai également ajouté deux lignes sans ce r'', dont une avec le
caractère spécial. Le résultat est conforme à mes attentes, et à partir
de ce résultat, je ne vois pas comment vos regex pourraient ne pas
fonctionner:
D:\Pythons\WinPython-64bit-3.4.3.6\python-3.4.3.amd64\pythonw.exe
U:/EclipseWorkspaces/EclipsePython/test/src/test.py
3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit
(AMD64)]
True [ .*@vgtru\t.* (<class 'str'>) | .*@vgtru\t.* (<class 'str'>) ]
True [ .*@billgst.* (<class 'str'>) | .*@billgst.* (<class 'str'>) ]
False [ .*@vgtru\t.* (<class 'str'>) | .*@vgtru .* (<class 'str'>) ]
True [ .*@billgst.* (<class 'str'>) | .*@billgst.* (<class 'str'>) ]
True [ .*@.*mademoiselle.*shopping.* (<class 'str'>) |
.*@.*mademoiselle.*shopping.* (<class 'str'>) ]
True [ .*@.*canalprivilege.* (<class 'str'>) | .*@.*canalprivilege.*
(<class 'str'>) ]
True [ .*@.*design.*atylia.* (<class 'str'>) | .*@.*design.*atylia.*
(<class 'str'>) ]
True [ .*@.*news.*info2pro.* (<class 'str'>) | .*@.*news.*info2pro.*
(<class 'str'>) ]
Process finished with exit code 0
--
Pierre Maurette
Back to fr.comp.lang.python | Previous | Next — Previous in thread | Find similar
conversion en string raw plp <pourlapub@free.fr> - 2016-10-18 20:20 +0200 Re: conversion en string raw Doug713705 <doug.letough@free.fr> - 2016-10-18 19:26 +0000 Re: conversion en string raw Pierre Maurette <maurette.pierre@free.fr> - 2016-10-19 09:05 +0200
csiph-web