2017-09-15 82 views
1

我想寫一個bin文件的字符串作爲頭。 但是,我只能將類型'字節'寫入二進制文件。 這裏是我的代碼:如何使用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) 

這裏是我的問題: 1,當我打開使用記事本文件abc.bin,我可以看到「1」和「2」,但他們是不是在分離線。爲什麼看起來\ n不起作用? 2,在.bin文件中,「1」和「2」的格式是什麼。他們是字符串嗎? 3,我也試過泡菜和元帥。然而,當我打開.bin文件時,我在「1」和「2」前面找到了一些東西(比如當我使用marshal.dump(header1,f_test)時,它給了我:?1?2)。這些是什麼'?'他們從哪裏來?

回答

0

這不是最初來自我,但我得到的評論對這個職位的解決方案: https://pythonconquerstheuniverse.wordpress.com/2011/05/08/newline-conversion-in-python-3/

總結一下,換行需要被轉換爲字節。即B 「\ n」

,如果你嘗試以下方法,它將打印新行:

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") 
相關問題