Python 如何修复不散列文件中每一行的代码

Python 如何修复不散列文件中每一行的代码,python,Python,我试图散列一个txt文件中的每一行,但它只会散列第一行 我试着重定向打印 导入hashlib 将open('hash.txt','r+')作为f: 对于f中的行: line=line.strip() f、 写入(f'{line}->{hashlib.sha3_256(line.encode()).hexdigest()}') f、 关闭() 您正在向正在读取的同一文件写入。尝试创建新文件并将结果写入其中 with open('hash.txt','r+') as f: with ope

我试图散列一个txt文件中的每一行,但它只会散列第一行

我试着重定向打印

导入hashlib
将open('hash.txt','r+')作为f:
对于f中的行:
line=line.strip()
f、 写入(f'{line}->{hashlib.sha3_256(line.encode()).hexdigest()}')
f、 关闭()

您正在向正在读取的同一文件写入。尝试创建新文件并将结果写入其中

with open('hash.txt','r+') as f:
    with open('result.txt', 'w+') as r:
        for line in f:
            line = line.strip()
            r.write(f'{line} -> {hashlib.sha3_256(line.encode()).hexdigest()}\n')

此外,如果您将一起使用,则不需要关闭文件,因为它已经为您关闭了

您正在写入的文件与正在读取的文件相同。尝试创建新文件并将结果写入其中

with open('hash.txt','r+') as f:
    with open('result.txt', 'w+') as r:
        for line in f:
            line = line.strip()
            r.write(f'{line} -> {hashlib.sha3_256(line.encode()).hexdigest()}\n')

另外,如果您正在使用with,则不需要关闭文件,因为它已经为您关闭了

当您迭代它的行时,它看起来像您写入
f
,这是预期的行为吗?当您迭代它的行时,它看起来像您写入
f
,这是预期的行为吗?r.write(f'{line}->{hashlib.sha3_256(line.encode()).hexdigest()}\n')这样它就可以写在一个新的行上。write(f'{line}->{hashlib.sha3_256(line.encode()).hexdigest()}\n')这样它就可以写在一个新行上