Tengo un golpe de cuerda con muchas líneas. ¿Cómo leo las líneas una a una con una for
cláusula? Esto es lo que estoy tratando de hacer y obtengo un error en la var textData a la que se hace referencia en la for line in textData
línea.
for line in textData
print line
lineResult = libLAPFF.parseLine(line)
La variable textData existe, la imprimo antes de bajar, pero creo que el precompilador está provocando el error.
TIA
Dennis
textData
? ¿Puede darnos un SSCCE , algo que podamos ejecutar y ver el mismo problema que usted para que podamos explicárselo?Respuestas:
¿Qué pasa con el uso
.splitlines()
?for line in textData.splitlines(): print(line) lineResult = libLAPFF.parseLine(line)
fuente
"/r"
y"/n"
son solo cadenas normales de dos caracteres que constan de una barra y una letra. ¿Quiso decir"\n"
?dividiendo con nuevas líneas.
for line in wallop_of_a_string_with_many_lines.split('\n'): #do_something..
si itera sobre una cadena, está iterando char por char en esa cadena, no por línea.
>>>string = 'abc' >>>for line in string: print line a b c
fuente
Esta respuesta falla en un par de casos extremos (ver comentarios). La solución aceptada anterior se encargará de estos.
str.splitlines()
es el camino a seguir. Dejaré esta respuesta sin embargo como referencia.Respuesta antigua (incorrecta):
s = \ """line1 line2 line3 """ lines = s.split('\n') print(lines) for line in lines: print(line)
fuente
import re
re.split
lugar destr.split
(osplitlines
) solo para dividir en caracteres de nueva línea? Construir una expresión regular a partir de un único carácter literal estático es simplemente complicar las cosas sin ninguna razón.s.split
. Cambiarlo ahorasplit('\n')
retendrá cualquier\r
carácter dentro de la picadura. Los retornos de carro no se eliminarán, lo que podría ser un problema.