Je le fichier suivant:lecture sur la ligne selfs 0x1A
abcde
kwakwa
<0x1A>
line3
linllll
Où <0x1A>
représente un octet avec la valeur hexadécimale de 0x1A. Lorsque vous essayez de lire ce fichier en Python comme:
for line in open('t.txt'):
print line,
Il ne lit que les deux premières lignes, et sort de la boucle.
La solution semble être d'ouvrir le fichier en binaire (ou en mode newline universel) - 'rb' ou 'rU'. Pouvez-vous expliquer ce comportement?
Comment savez-vous que l'octet représenté <0x1A>. Pour moi, il suffit de dire 'SUB' dans notepadd ++ – Programmer
Une autre solution consiste à utiliser Python 3 ou ['io.open()'] (https://docs.python.org/2/library/io.html # io.open) dans Python 2; les objets du fichier 'io' utilisent toujours le fichier en mode binaire en ce qui concerne le système d'exploitation et donc Windows ne« terminera »pas le fichier prématurément. –