Mehrmals hier auf SO habe ich Leute gesehen, die rt
und wt
Modi zum Lesen und Schreiben von Dateien verwenden.
Beispielsweise:
with open('input.txt', 'rt') as input_file:
with open('output.txt', 'wt') as output_file:
...
Ich sehe die dokumentierten Modi nicht , aber da open()
sie keinen Fehler auslösen , scheint es ziemlich legal zu sein, sie zu verwenden.
Wofür ist es und gibt es einen Unterschied zwischen der Verwendung von wt
vs w
und rt
vs r
?
python
file
file-io
read-write
Alecxe
quelle
quelle
wt
vsw
undrt
vsr
- nurexplicit is better than implicit
?r
undrt
...w
nicht immer gleich istwt
. In einem solchen Fall ist dergzip.open
Binärmodus der Standardmodus und nicht der Textmodus. Verwandte Frage: stackoverflow.com/questions/42013083/…Der
t
Textmodus wird angezeigt. Dies bedeutet, dass\n
Zeichen beim Schreiben in eine Datei in die Zeilenenden des Host-Betriebssystems und beim Lesen wieder zurück übersetzt werden. Das Flag ist im Grunde nur Rauschen, da der Textmodus die Standardeinstellung ist.Anders als
U
, kommen diese Modus - Flags direkt von dem Standard der C - Library -fopen()
Funktion, eine Tatsache , die im sechsten Absatz der dokumentierten python2 Dokumentation füropen()
.Soweit ich weiß,
t
ist und war es nie Teil des C-Standards. Obwohl viele Implementierungen der C-Bibliothek dies ohnehin akzeptieren, gibt es keine Garantie dafür, dass sie alle funktionieren, und daher keine Garantie dafür, dass es bei jedem Build von funktioniert Python. Das erklärt, warum die python2-Dokumente es nicht aufgelistet haben und warum es im Allgemeinen sowieso funktioniert hat. Die Python3-Dokumente machen es offiziell.quelle
Das 'r' steht zum Lesen, das 'w' zum Schreiben und das 'a' zum Anhängen.
Das 't' steht für den Textmodus im Binärmodus.
Edit: Bist du sicher, dass du rt und nicht rb gesehen hast?
Diese Funktionen schließen im Allgemeinen die hier beschriebene fopen- Funktion ein:
http://www.cplusplus.com/reference/cstdio/fopen/
Wie Sie sehen können, wird die Verwendung von b zum Öffnen der Datei im Binärmodus erwähnt.
Der von Ihnen angegebene Dokumentlink verweist auch auf diesen b-Modus:
Das Anhängen von 'b' ist auch auf Systemen nützlich, die Binär- und Textdateien nicht unterschiedlich behandeln und als Dokumentation dienen.
quelle
rt
, zB stackoverflow.com/questions/10971033/… oder stackoverflow.com/questions/17127853/… usw. Vielen Dank für die Info, gut zu wissen.t
zeigt fürtext mode
https://docs.python.org/release/3.1.5/library/functions.html#open
Unter Linux gibt es keinen Unterschied zwischen Textmodus und Binär - Modus, jedoch in den Fenstern, wandelt sie
\n
um ,\r\n
wenn Textmodus.http://www.cygwin.com/cygwin-ug-net/using-textbinary.html
quelle
read
Unicode-Zeichenfolgen zurück. Gibt im Binärmodusread
einebytes
Instanz zurück. Wenn Sie Python 2-Code unter Berücksichtigung der Vorwärtskompatibilität schreiben möchten, können Sieio.open
anstelle des Standardsopen
das Python 3-Verhalten (mitunicode
versusstr
Instanzen) verwenden.