您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在python中以二进制形式编写ASCII字符串

在python中以二进制形式编写ASCII字符串

您误解了\xhhPython字符串中的功能\x在Python字符串中使用表示法 只是 产生某些代码点的 语法

您可以使用'\x61'产生一个字符串,也可以使用'a'; 两种方式都只是 给我一个带有十六进制值61的字符的字符串,例如aASCII字符

>>> '\x61'
'a'
>>> 'a'
'a'
>>> 'a' == '\x61'
True

\xhh随后的语法,是 不是值 ; 最终结果中没有\,没有x,没有61性格。

您应该 只写您的字符串

somestring = 'abcd'

with open("test.bin", "wb") as file:
    file.write(somestring)

二进制文件没有什么不可思议的。以文本模式打开的文件的唯一区别是二进制文件不会自动\n换行符转换为平台的行分隔符标准;例如,在Windows上编写\n产生\r\n

您当然不必产生十六进制转义来写入二进制数据。

在Python 3上,字符串是Unicode数据,不能不经过编码就不能直接写入文件,但是在Python上,str类型 已经 是编码字节。因此,在Python 3上,您将使用:

somestring = 'abcd'

with open("test.bin", "wb") as file:
    file.write(somestring.encode('ascii'))

或者您将使用字节字符串文字b'abcd'

python 2022/1/1 18:44:08 有296人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶