私は次のエラーを取得するPython 3を使用してバイナリモードで開いたファイルにテキストを書き込む方法は?
with open('foo.txt', 'wb') as f:
print(b'foo\nbar\n', file=f)
7. Windows上のPython 3.5.1で、次のコードを実行します。
Traceback (most recent call last):
File "foo.py", line 2, in <module>
print(b'foo\nbar\n', file=f)
TypeError: a bytes-like object is required, not 'str'
私の意図は、ファイル内(CRLFではなく)すべての'\n'
がLFとして表示されるように、ファイル内のテキストを書くことです。
上記のコードで何が問題になっていますか?バイナリモードで開いたファイルにテキストを書き込む正しい方法は何ですか?
Windows上で 'CRLF'の代わりに、' LF'を書くために起こっている
newline=''
またはnewline='\n'
は、非翻訳モードを指定します。 Windows上でも 'LF'を書いて欲しいです。 –@LoneLearner試しましたか? Python 3はそれ自身の行処理であり、このコードでWindowsにLFのみを書き出します。私はWindows上にあり、16進ダンプを使って検証しました。 –
@LoneLearner証明を追加しました。 –