【发布时间】:2017-02-14 06:46:41
【问题描述】:
我正在用 python gui 编写一个程序。该程序概念是当我们运行 prgm 时,它会要求以读取模式打开一个文件(女巫包含作为 TASK.txt 的十六进制值)。 我将一行的数据存储在一个变量中。 我如何将该数据转换为 ascii 值。我是 python 新手。这是我的代码:
import binascii
import base64
from tkinter import *
from tkinter.filedialog import askopenfilename
def callback():
with open(askopenfilename(),'r') as r:
next(r)
for x in r:
z = str(x[1:-2])
if len(z) % 2:
z = '0' + 'x' + z
print(binascii.unhexlify(z))
a = Button(text='select file', command=callback)
a.pack()
mainloop()
这是我得到的错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "D:\python sw\lib\tkinter\__init__.py", line 1699, in __call__
return self.func(*args)
File "C:\Users\LENOVO\Downloads\hex2.py", line 16, in callback
print(binascii.unhexlify(z))
binascii.Error: Non-hexadecimal digit found"""
【问题讨论】:
-
Tkinter 的东西是无关紧要的。问题代码应该是关注实际问题的minimal reproducible example。错误消息说您在
binascii.unhexlify的 arg 中有字符不是有效的十六进制数字。 不要在十六进制数据前添加'0x'。该数据可能存在其他问题。你能发布一个小的典型数据样本吗? -
感谢您的回复这是我的数据 H247314748F8 HA010001FD
标签: python django python-2.7 python-3.x ipython