bowbz
Messages postés8Date d'inscriptionjeudi 21 décembre 2000StatutMembreDernière intervention 2 octobre 2009
-
2 oct. 2009 à 14:15
bowbz
Messages postés8Date d'inscriptionjeudi 21 décembre 2000StatutMembreDernière intervention 2 octobre 2009
-
2 oct. 2009 à 15:27
Bonjour,
J'essaie de créer de multiples fichiers à partir d'un gros fichier. Dans ce gros fichier, il y a un séparateur que j'aimerai utiliser comme critère. Ce séparateur est le caractère ^L (le formfeed). En gros, le fichier est comme ceci :
---- début fichier
bcbc
bcbcb
^L <= j'amerai couper ici
sdsd
sddsds
^L <= idem
sdsds
dsdsd
^L <= et encore idem
END
----- fin fichier
Pour le moment j'ai ce code, qui ne marche pas
#!/usr/bin/python
# -*- coding: utf-8 -*-
# module codecs convertit en utf
import codecs
file_utf8 = codecs.open('fichier_in.txt','r','utf-8')
while True:
ligne = file_utf8.readline()
if ligne.rstrip() == 'END':
print "on arrive à la fin, on sort du while"
break
if ligne == '^L':
print "Trouvé le séparateur"
else:
print ligne
file_utf8.close()
La ligne qui me pose problème est donc
if ligne == '^L':
J'ai essayé de mettre le code unicode (u'\u000C'), le code décimal (12), j'ai aussi essayé de mettre ord(u'\u000C')) ou chr(12), mais rien n'y fait, je ne sais pas comment attraper ce formfeed dans le if.
Toute idée serait la bienvenue pour me sortir de ce guépier.
PS : dans le code j'avais noté certains caractères en majuscules, mais l'aperçu les met en minuscules, bizarre..
bowbz
Messages postés8Date d'inscriptionjeudi 21 décembre 2000StatutMembreDernière intervention 2 octobre 2009 2 oct. 2009 à 15:27
Non ça ne marche pas. dans le premier if, il y a la méthoded rstrip() qui vire justement ce caractère, et d'après ce que j'ai compris, il virerait aussi le ^L, c'est pour cela que je ne l'ai pas mis dans le second if.