2017-09-15 13 views
1

私は文字列をヘッダーとしてbinファイルに書きたいと思います。 しかし、バイナリファイルにのみタイプ 'バイト'を書き込むことができます。私はメモ帳を使用してabc.binファイルを開いたとき、私は「1」を見ることができると「2」が、彼らは分離しているラインではありません、 1:ここでは Python3を使用してバイナリファイルに文字列を書き込むにはどうすればよいですか?

header1 = str.encode("1\n") 
header1 = str.encode("2\n") 
print (type(header)) 
with open("abc.bin",'wb') as f_test: 
    f_test.write(header1) 
    f_test.write(header2) 

が私の質問です: はここに私のコードです。 \ nが機能していないのはなぜですか? 2の.binファイルでは、 "1"と "2"の形式は何ですか。彼らは弦ですか? 3、私もピックルとマーシャルを試してみました。しかし、.binファイルを開くと、 "marshal.dump(header1、f_test)"を使用したときのように、 "1"と "2"の前に何かが見つかりました。これは何'?'彼らはどこから来たのですか?

答えて

0

これは私の出身ではないですが、私はこの記事にコメントからソリューションを取得: https://pythonconquerstheuniverse.wordpress.com/2011/05/08/newline-conversion-in-python-3/

を要約すると、改行がバイトに変換する必要があります。

header1 = str.encode("1") 
header1 = str.encode("2") 
print (type(header)) 
with open("abc.bin",'wb') as f_test: 
    f_test.write(header1+b"n") 
    f_test.write(header2+b"n") 
:あなたは次のことをしようとした場合、すなわちB "\ n" は

、それは新しい行を印刷します

関連する問題