我有一个ASCII字符串="abcdefghijk"。我想用Python将其以二进制格式写入二进制文件。
我尝试了以下方法:
str = "abcdefghijk"
fp = file("test.bin", "wb")
hexStr = "".join( (("\\x%s") % (x.encode("hex"))) for x in str)
fp.write(hexStr)
fp.close()
但是,当我打开test.bin文件时,我看到的是ASCII格式而不是二进制格式。
\x61\x62\x63\x64\x65\x66\x67
我理解是因为这里有两个反斜杠 ("\\x%s")。我该如何解决这个问题?谢谢。
更新:
以下代码给了我期望的结果:
file = open("test.bin", "wb")
file.write("\x61\x62\x63\x64\x65\x66\x67")
file.close()
但是如何在ASCII字符串"abcdef"中实现这一点呢?
\xhh
符号表示什么(它只是语法,一种产生值的方式,而不是值本身)。 - Martijn Pieters'abcd'
即可。在Python 3中,您需要使用str.encode('ascii')
将文本编码为字节。 - Martijn Pieters