En Python 2.4, ¿cómo puedo eliminar los caracteres después de '';''?
title in python plot (8)
Digamos que estoy analizando un archivo, que utiliza ;
como el caracter del comentario. No quiero analizar los comentarios. Así que si una línea se ve así:
example.com. 600 IN MX 8 s1b9.example.net ; hello!
¿Existe una manera más fácil / más elegante de eliminar los caracteres que no sea esta:
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''
Aquí hay otra manera:
In [6]: line = "foo;bar" In [7]: line[:line.find(";")] + "/n" Out[7]: ''foo/n''
Leyendo, dividiendo, eliminando y uniendo líneas con nueva línea, todo en una línea de python:
rtr = ''/n''.join(line.split('';'')[0].strip() for line in open(r''c:/temp/test.txt'', ''r''))
No he probado esto con python pero uso un código similar en otro lugar.
import re
content = open(r''c:/temp/test.txt'', ''r'').read()
content = re.sub(";.+", "/n")
Para Python 2.5 o superior, usaría el método de partition
:
rtr = line.partition('';'')[0].rstrip() + ''/n''
Recomendaría decir
line.split(";")[0]
lo que le dará una cadena de todos los caracteres hasta, pero sin incluir el primer ";" personaje. Si no ";" El carácter está presente, entonces te dará la línea completa.
simplemente haga una división en la línea por comentario y luego obtenga el primer elemento, por ejemplo,
line.split(";")[0]
file = open(r''c:/temp/test.txt'', ''r'')
for line in file: print
line.split(";")[0].strip()