我有以下代码,这些代码在Python 2.7中完全按照我的要求工作。它以regs为单位获取一系列整数值,并将每个值转换为其等效的字符。例如,21365 ==> 0x5375 amd将导致“ Su”。
RegString = ""
for i in range(length):
if regs[start+i]!=0:
print (" Regs is ", regs[start+1], " Hex is ", hex(regs[start+i]), " Striped is ", str(format(regs[start+i],'x') ))
RegString = RegString + str(format(regs[start+i],'x').decode('hex'))
但是在Python 3中,decode('hex')引发错误。现在,我查看了很多与此问题相关的帖子,但无法将这些解决方案应用于我的问题,即修改以上代码以使其在Python 3中工作。
这是我尝试运行此代码段时的输出:
Regs是20341十六进制是0x4f75条纹是4f75
回溯(最近通话最近): Get_Regester_String中的文件“ v3Test.py”,第23行 RegString = RegString + str(format(regs [start + i],'x')。decode('hex'))
AttributeError:'str'对象没有属性'decode'
任何人都可以指出正确的方向来修复上述失败的语句,以便它可以在Python 3.7中运行“ RegString = RegString + str(format(regs [start + i],'x' ).decode('hex')) “。谢谢... RDK
答案 0 :(得分:0)
对于python 3,请使用以下过程
bytes.fromhex(format(regs[start+i],'x')).decode('utf-8')