我在python中为文件生成了哈希值。该值包含字符和数字。如果我检查每个值的数据类型,它将显示为字母和数字的字符串。如何将数字的数据类型从字符串转换为整数?
预先感谢!
import hashlib
myl = []
fobj = open('akash.txt','r')
buffer = fobj.read()
hsh = hashlib.sha512()
hsh.update(buffer.encode('utf-8'))
val = hsh.hexdigest()
for i in val:
print(type(i))
fobj.close()
该代码生成的哈希值是:
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
我希望输出为
<class 'str'>
<class 'str'>
<class 'int'>
...
但这是我得到的输出
<class 'str'>
<class 'str'>
<class 'str'>
...
答案 0 :(得分:1)
我真的不知道为什么要这样做,但是可以尝试是否可以先将哈希字符串中的字符转换为整数,然后再打印类型。只需按以下步骤更改循环
for i in val:
try:
n = int(i)
except ValueError:
n = i
print(f'character: {n} is {type(n)}')