私のコードが MacOS と Windows の両方で定期的にテキストを書き込めることを願っています。そのため、このスクリプトがモード U の機能を持ち、その間に w+ の機能を持っていることを願っています。
file.open() のモード引数はどうすればよいですか?
ユニバーサル改行モードでの書き込みはサポートされていません。PEPから:
別の改行規則を使用したファイルへの出力は特別にサポートされていないため、モード "wU" も不正です。
と
ユニバーサル改行の出力実装はありません。Python プログラムは、これを自分で処理するか、そうでない場合はプラットフォーム固有の規則でファイルを書き込むことが期待されます。この理由は、入力が難しいケースであるためです。さまざまな改行をファイルに出力することは、Python ではすでに十分に簡単です。
これは、実際に試したときに返されるエラーによって示唆されていますUw+
。
ValueError: universal newline mode can only be used with modes starting with 'r'
Ur+
失敗しませんが、書き込み時に置換も行わないことに注意してください。Mac (OS X は Unix の改行を使用) でも実行できf.write('test\r\n')
、ファイルに Windows の改行が表示されます。
edit : オフのままにしておく限り、Pythonは実際にはデフォルトでプラットフォーム固有の改行出力を提供してb
いるようです。
...デフォルトではテキストモードを使用します。これは、書き込み時に「\n」文字をプラットフォーム固有の表現に変換し、読み取り時に戻す場合があります。