Python:binascii.a2b_hex给出"奇数长度字符串"

Mag*_*ked 8 python

我有一个十六进制值,我从文本文件中抓取,然后我将它传递给a2b_hex,将其转换为正确的二进制表示.这是我有的:

k = open('./' + basefile + '.key', 'r')
k1 = k.read()
k.close()
my_key = binascii.a2b_hex(k1)
Run Code Online (Sandbox Code Playgroud)

当我打印k1时,它是预期的:81e3d6df

这是错误消息:

Traceback (most recent call last):
  File "xor.py", line 26, in <module>
    my_key = binascii.a2b_hex(k1)
TypeError: Odd-length string
Run Code Online (Sandbox Code Playgroud)

有什么建议?谢谢!

Mat*_*nen 8

你确定文件中没有额外的东西吗?例如,空白?

尝试 k1.strip()


bob*_*nce 5

我怀疑文件末尾有一个尾随的换行符.在传递之前剥去字符串binascii.

注意现在还有一个更简单的拼写:k1.strip().decode('hex').