Ich habe die folgende Datei:Linie Lese Drosseln auf 0x1A
abcde
kwakwa
<0x1A>
line3
linllll
Wo <0x1A>
ein Byte mit dem Hex-Wert von 0x1A darstellt. Bei dem Versuch, diese Datei in Python zu lesen, wie:
for line in open('t.txt'):
print line,
Es liest nur die ersten beiden Zeilen, und die Schleife beendet.
Die Lösung scheint die Datei in binären (oder Universal-Newline-Modus) zu öffnen zu sein - ‚rb‘ oder ‚rU‘. Kannst du dieses Verhalten erklären?
Wie wissen Sie, dass das Byte <0x1A> vertreten. Für mich sagt es nur 'SUB' in notepadd ++ – Programmer
Eine andere Problemumgehung ist die Verwendung von Python 3 oder ['io.open()'] (https://docs.python.org/2/library/io.html # io.open) in Python 2; Die 'io'-Dateiobjekte verwenden die Datei immer im binären Modus, was das Betriebssystem angeht, und Windows wird die Datei nicht vorzeitig 'beenden'. –