温馨提示:标题解决方案请浏览后面部分,傻吊网友请按顺序浏览
启蒙(转载)自:https://blog.youkuaiyun.com/dengzhaoqun/article/details/8923259
顺带struct详解链接:https://blog.youkuaiyun.com/qq_30638831/article/details/80421019
最近在处理些16进制的字节流:
>>>bytes1 = b'5a'
>>>print(b"%s"%bytes1,len(bytes1))
b'5a' 2
>>>print(b"\xff",len(b'\xff'))
b'\xff' 1
而我们有时候得到的是"\xff"中的"ff",我们想要将其格式化为长度为1的"\xhh"格式的,代码示例:
>>>bytes1 = b'7a'
>>>print(b"\x%s"%bytes1)
万恶的解释器爆出了这样的错误:
ValueError:invalid \x escape at position 0
意思是因为各种原因不能直接输出"\xhh"格式的16进制数据。我就迷了,凭啥不能格式化输出。
翻阅各大傻吊网友的博客,说要双‘\’,‘0xhh’格式,抱歉我这是16进制的数据字节流,不跟字符串类似,你们真的以为我看了你们的博客会开心吗,这真是一把心酸一把泪,最终我找到那篇文章里的chr(),啊,chr(),你藏得真够深啊。
chr和ord这对“双胞胎”还能这么用!!!
代码优化:

本文介绍了如何在Python中处理16进制的字节流,特别是如何将'xff'格式的数据转化为'xhh'格式。通过讨论chr()和ord()函数,以及使用struct模块来实现转换,解决了不能直接输出'xhh'格式16进制数据的问题。
最低0.47元/天 解锁文章
621

被折叠的 条评论
为什么被折叠?



