python string python-2.4

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''


Así que querrás dividir la línea en el primer punto y coma, tomar todo lo que está antes, quitar cualquier espacio en blanco persistente y agregar un carácter de nueva línea.

rtr = line.split(";", 1)[0].rstrip() + ''/n''

Enlaces a Documentació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()