tengo el siguiente archivo:lectura Línea ahoga en 0x1A
abcde
kwakwa
<0x1A>
line3
linllll
Dónde <0x1A>
representa un byte con el valor hexadecimal de 0x1A. Al intentar leer este archivo en Python como:
for line in open('t.txt'):
print line,
Sólo lee las dos primeras líneas, y sale del bucle.
La solución parece ser abrir el archivo en modo binario (o modo de nueva línea universal) - 'rb' o 'rU'. ¿Puedes explicar este comportamiento?
Cómo sabe que el byte representa <0x1A>. Para mí, simplemente dice 'SUB' en Notepadd ++ – Programmer
. Otra solución es usar Python 3 o ['io.open()'] (https://docs.python.org/2/library/io.html # io.open) en Python 2; los objetos del archivo 'io' siempre usan el archivo en modo binario en lo que respecta al sistema operativo y, por lo tanto, Windows no 'terminará' el archivo prematuramente. –