python 输出"\xhh"格式的16进制数据(改2)

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

温馨提示:标题解决方案请浏览后面部分,傻吊网友请按顺序浏览

启蒙(转载)自: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这对“双胞胎”还能这么用!!!
代码优化:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值