十六进制转换无效转义序列 (Python)

Hex conversion invalid escape sequence (Python)

这是我的代码:

from Crypto.Hash import SHA
<Receive a variable from the user, 'var'>
hashed_var = SHA.new(var).digest()
fp = open("file.txt", 'a')
for i in range(0, len(hashed_var)):
    fp.write(hex(ord(hashed_var[i]))

这实际上是在文件中写入散列变量的十六进制表示。问题是,当我查看文件的内容时,有一些十六进制字符,如 \xd、\x2 等。当我将其放入字符串时会引发错误,我收到错误消息 invalid \x escape。如何修复我的代码,使所有十六进制字符都以 \xhh 形式出现?

您可以使用 string formatting 代替 hex 函数:

...
fp.write("\x{0:02x}".format(ord(hashed_var[i])))