GNT sans publicité, site mobile, fonctionnalitées exclusives...

Découpe d'un texte

Le
stealth
Bonjour à tous,

Je cherche la meilleur méthode pour supprimer des lignes dans un texte

Voici mon code (python/GTK) pour l'affichage dans une fenetre GTK

info = pexpect.spawn('gpg --decrypt gpg-password.asc', timeout=3)
info.expect_exact(['password:', 'Password:', 'passe:'])
info.sendline('%s' % (passe))
text = info.read()
text = unicode(text, 'ISO-8859-1', 'ignore').encode('UTF-8')
buffer = self.textview1.get_buffer()
buffer.set_text(text)

ça fonctionne, mais malheuresement gpg ajoute la ligne suivante en
début de texte (normal).

gpg: chiffré avec une clé de 2048 bits ELG-E, ID 6D26EDF9, créée le
2006-02-13
« test <toto@toto.com> »
--BEGIN PGP MESSAGE--

Comment la supprimer proprement

Merci d'avance
Lire les 12 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric Deveaud
Le #520398
wrote:
Bonjour à tous,

Je cherche la meilleur méthode pour supprimer des lignes dans un texte

Voici mon code (python/GTK) pour l'affichage dans une fenetre GTK

info = pexpect.spawn('gpg --decrypt gpg-password.asc', timeout=3)
info.expect_exact(['password:', 'Password:', 'passe:'])
info.sendline('%s' % (passe))
text = info.read()
text = unicode(text, 'ISO-8859-1', 'ignore').encode('UTF-8')
buffer = self.textview1.get_buffer()
buffer.set_text(text)

ça fonctionne, mais malheuresement gpg ajoute la ligne suivante en
début de texte (normal).

gpg: chiffré avec une clé de 2048 bits ELG-E, ID 6D26EDF9, créée le
2006-02-13
« test -----BEGIN PGP MESSAGE-----

Comment la supprimer proprement


introduire une fonction de nettoyage de texte apres l'acquisition de text

du genre en admettant que l'on veuille supprimer TOUT ce qui precede
'-----BEGIN PGP MESSAGE-----'

fonction de filtrage:
IN texte = chaine de caractere a filtrer
marqueur
OUT chaine de caracterre filtrée

algo:
pos = trouver la position de marqueur dans text
si pos != -1 (ie le marquer a ete trouve)
text <- text de pos + longueur su marqueur a la fin
sinon
text <- text sans modifications

renvoyer text

idee brute de fonderie apres une journee bien claquante ;-)
je te laisse l'implementation

Eric


--
Je sais pas. Mais un très vieux proverbe macintoshien dit :
Quand BowelsOfTheMemoryMgr dans Macsbug apparoit, redémarer tu dois.
-+- AG in Guide du Macounet Pervers : ...à la mode, à la modeuu... -+-

Eric Deveaud
Le #520396
Bruno Desthuilliers wrote:

tttt j'avais dit qu'on laissait l'implementation a l'OP ;-))
alors je vais faire mon chiant ;-)))

S'il n'y a qu'une occurrrence au début:

target = "-----BEGIN PGP MESSAGE-----"
try:
text = text[text.index(target) + len(target)].strip()
~~~~~

^
|
+-- manque : non ??
except ValueError:
pass


pourquoi strip et pas lstrip ?
avec strip tu vas perdre les derniers espaces et n si il y en a ;-)

Eric

--
Tu me commences à me les briser menu. Tu emmerdes le monde en postant à
tort et à travers, pauvre con. Cela est contraire à tous les usages
Usenet et de savoir vivre en général.
-+- EJ in Guide du modérateur pervers - et la politesse bordel ? -+-

Bruno Desthuilliers
Le #520395
wrote:

Bonjour à tous,

Je cherche la meilleur méthode pour supprimer des lignes dans un texte

(snip)



ça fonctionne, mais malheuresement gpg ajoute la ligne suivante en
début de texte (normal).

gpg: chiffré avec une clé de 2048 bits ELG-E, ID 6D26EDF9, créée le
2006-02-13
« test -----BEGIN PGP MESSAGE-----

Comment la supprimer proprement




S'il n'y a qu'une occurrrence au début:

target = "-----BEGIN PGP MESSAGE-----"
try:
text = text[text.index(target) + len(target)].strip()
except ValueError:
pass


stealth
Le #531443
Bonjour et merci de vos réponses

Pour ma culture, comment faire si je souhaite supprimer des lignes
precises.
La premiere ou la troisieme par ex, dans ce cas je ne peux pas utiliser
strip
bruno at modulix
Le #531442
wrote:
Bonjour et merci de vos réponses

Pour ma culture, comment faire si je souhaite supprimer des lignes
precises.
La premiere ou la troisieme par ex, dans ce cas je ne peux pas utiliser
strip


En supposant que ton texte est d'un seul block:
lines = text.split('n')
l.pop(indice_de_la_ligne)
text = "n".join(lines)



--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"

Publicité
Suivre les réponses
Poster une réponse
Anonyme