如何在Python2.7中将十六进制转换为ascii并存储在.txt文件中

2024-09-30 16:32:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我收到一大群1位或2位十六进制值,它们通过串行总线用空格分隔。我希望我的程序将这些十六进制值转换为相应的ASCII字符,并将其写入.txt文件。我相信我会出错,因为.decode(“hex”)函数需要一个2位数的值,我已经尝试在下面的代码中修复这个值

while ser.in_waiting>0:
    if ser.in_waiting != space:
        temp = ser.read()
    if len(temp)<2:
        temp = '0' + temp
    print temp
    asciiVal = temp.decode("hex")
    myFile.write(asciiVal)

这不是完整的代码,而是与我得到的错误相关的区域

我得到了以下错误:

>File "C:\Python27\lib\encodings\hex_codec.py", line 42, in hex_decode
>output = binascii.a2b_hex(input)
>TypeError: Non-hexadecimal digit found

Tags: 代码in程序if错误ascii字符temp