回答:
t
テキストモードを指します。テキストモードがデフォルトであるため、r
and rt
またはw
andの間に違いはありませんwt
。
文書化され、ここで:
Character Meaning
'r' open for reading (default)
'w' open for writing, truncating the file first
'x' open for exclusive creation, failing if the file already exists
'a' open for writing, appending to the end of the file if it exists
'b' binary mode
't' text mode (default)
'+' open a disk file for updating (reading and writing)
'U' universal newlines mode (deprecated)
デフォルトのモードは'r'
(テキストを読むために開く、の同義語'rt'
)です。
r
とrt
...
w
は常にと等しいとは限らないことに注意してくださいwt
。このようなケースの1つはgzip.open
、バイナリモードがデフォルトであり、テキストモードではない場合です。関連質問:stackoverflow.com/questions/42013083/...
t
つまり、テキストモードを示して\n
文字がファイルへの書き込み時に、ホストOSの改行コードに変換し、再び読み込むときにされます。テキストモードがデフォルトであるため、フラグは基本的に単なるノイズです。
以外にU
、これらのモードフラグは標準Cライブラリのfopen()
関数から直接取得されopen()
ます。これは、のpython2ドキュメントの 6番目の段落に記載されています。
私の知る限り、t
はC標準の一部ではありませんでした。そのため、Cライブラリの多くの実装はそれを受け入れますが、すべてが保証されるわけではないため、すべてのビルドで機能する保証はありません。 python。それがpython2のドキュメントにリストされなかった理由と、それが一般的に機能した理由を説明しています。python3のドキュメントは、それが公式にします。
「r」は読み取り用、「w」は書き込み用、「a」は追加用です。
「t」は、バイナリモードに相当するテキストモードを表します。
ここSOで何度か、rtモードとwtモードを使用してファイルの読み取りと書き込みを行う人を見てきました。
編集: rbではなくrtを見たことはありますか?
これらの関数は、通常、ここで説明するfopen関数をラップします。
http://www.cplusplus.com/reference/cstdio/fopen/
ご覧のとおり、bを使用してファイルをバイナリモードで開くことが記載されています。
あなたが提供したドキュメントのリンクもこのbモードを参照しています:
「b」を付加すると、ドキュメントとして機能するバイナリファイルとテキストファイルを別々に処理しないシステムでも役立ちます。
rt
、例えば、stackoverflow.com / questions / 10971033 / … 、またはstackoverflow.com/questions/17127853/…などでした。情報をありがとうございます。
t
を示す text mode
https://docs.python.org/release/3.1.5/library/functions.html#open
Linuxでは、テキストモードとバイナリモードに違いはありませんが、Windowsでは、いつテキストモードに変換さ\n
れ\r\n
ます。
read
は、Unicode文字列を返します。バイナリモードでread
は、bytes
インスタンスを返します。上位互換性を考慮してPython 2コードを記述したい場合io.open
は、標準ではなくを使用open
して、Python 3の動作(インスタンスとのunicode
比較str
)を取得できます。
wt
vsw
とrt
vsの間に違いはありませんr
-ただexplicit is better than implicit
?