2016-03-03 34 views
1

這是我的代碼:六角轉換無效轉義序列(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形式出現?

回答

1

可以使用string formatting,而不是hex功能:

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