使用struct module打包十六进制字符串?

时间:2016-10-18 20:10:18

标签: python string hex

我想用python包打包一个十六进制字符串。 这是我的代码:

import struct
query='430401005001'
q= ('%x' % int(query, 16)).decode('hex').decode('utf-8')
qpacked=struct.pack('6s',str(q))

查询是十六进制字符串。 如果我将字符串更改为'53040600d0010100'并将6s更改为8s,则代码不起作用。 有没有更好的方法来打包这样的十六进制字符串?

1 个答案:

答案 0 :(得分:0)

字符串被截断,因为您告诉它要将其打包到长度为6(6s)。你必须要么提高这个数字,要么解决你的字符串被截断的问题。

另外,请停止使用字符串编码进行操作,只需query.decode('hex')即可。