lectura de archivos sin nuevas líneas en Python
En Python, llamar a
temp = open(filename,'r').readlines()
da como resultado una lista en la que cada elemento es una línea del fichero. Es un poco estúpido pero aún así: readlines()
también escribe el carácter de nueva línea a cada elemento, algo que no deseo que ocurra.
¿Cómo puedo evitarlo?
316
3
Puede leer todo el archivo y dividir las líneas utilizando
str.splitlines
:O puede quitar la nueva línea a mano:
Nota: esta última solución sólo funciona si el archivo termina con una nueva línea, de lo contrario la última línea perderá un carácter.
Esta suposición es cierta en la mayoría de los casos (especialmente para los archivos creados por editores de texto, que a menudo añaden una nueva línea final de todos modos).
Si quiere evitar esto, puede añadir una nueva línea al final del archivo:
O una alternativa más sencilla es
suprimir
la nueva línea en su lugar:O incluso, aunque bastante ilegible:
Que aprovecha el hecho de que el valor de retorno de
or
no es un booleano, sino el objeto que se evaluó verdadero o falso.El método
readlines
es en realidad equivalente aComo
readline()
mantiene la nueva línea tambiénreadlines()
la mantiene.Nota: por simetría con
readlines()
el métodowritelines()
no añade las nuevas líneas finales, así quef2.writelines(f.readlines())
produce una copia exacta def
enf2
.