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

String 如何使用Python3将字符串写入二进制文件?,string,python-3.x,binary,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文件时,我

我想将字符串作为头写入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”的格式是什么。它们是弦吗?
我也试过泡菜和元帅。然而,当我打开.bin文件时,我在“1”和“2”前面发现了一些东西(比如当我使用marshal.dump(header1,f_test)时,它给了我:?1?2)。这些“?”是什么?它们从哪里来?

这不是我的原创,但我从这篇文章的评论中得到了解决方案:

总之,换行符需要转换为字节。i、 e.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")

这不是我的初衷,但我从这篇文章的评论中得到了解决方案:

总之,换行符需要转换为字节。i、 e.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")