如何使用Python3将字符串写入二进制文件?

时间:2017-09-15 03:08:25

标签: string python-3.x binary

我想将字符串写入bin文件作为标题。 但是,我只能将类型'bytes'写入二进制文件。 这是我的代码:

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)。这些是什么'?'他们来自哪里?

1 个答案:

答案 0 :(得分: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")