Supposons que je suis en train d'analyser un fichier qui utilise ;
comme caractère de commentaire. Je ne veux pas analyser les commentaires. Donc, si je ressemble à ceci:
example.com. 600 IN MX 8 s1b9.example.net ; hello!
Existe-t-il un moyen plus simple/plus élégant de supprimer les caractères autres que celui-ci:
rtr = ''
for line in file:
trig = False
for char in line:
if not trig and char != ';':
rtr += char
else:
trig = True
if rtr[max(rtr)] != '\n':
rtr += '\n'
Je recommanderais de dire
line.split(";")[0]
qui vous donnera une chaîne de tous les caractères jusqu’à ce qu’ils n'incluent pas le premier ";" personnage. Sinon ";" caractère est présent, alors il vous donnera la ligne entière.
faites juste une scission sur la ligne par commentaire puis obtenez le premier élémenteg
line.split(";")[0]
Pour Python 2.5 ou supérieur, j'utiliserais la méthode partition
:
rtr = line.partition(';')[0].rstrip() + '\n'
file = open(r'c:\temp\test.txt', 'r')
for line in file: print
line.split(";")[0].strip()
Lecture, division, suppression et jonction de lignes avec newline dans une seule ligne de python:
rtr = '\n'.join(line.split(';')[0].strip() for line in open(r'c:\temp\test.txt', 'r'))
Voici un autre moyen:
Dans [6]: line = "foo; bar" Dans [7]: line [: line.find (";")] + "\ n" Out [7]: 'foo\n '