2017-09-15 121 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")