gpt4 book ai didi

python - 在python中写入没有冗余行的文件

转载 作者:太空宇宙 更新时间:2023-11-04 10:21:05 25 4
gpt4 key购买 nike

我正在编写 python 脚本以从输入文件中读取行并将唯一行(如果同一行不在输出文件中)写入输出文件。不知何故,我的脚本总是将输入文件的第一行附加到输出文件,即使同一行已经在输出文件中。我不明白为什么会这样。谁能知道为什么以及如何解决这个问题?谢谢,

import  os

input_file= 'input.txt'
output_file = 'output.txt'

fo = open(output_file, 'a+')
flag = False
with open(input_file, 'r') as fi:
for line1 in fi:
print line1
for line2 in fo:
print line2
if line2 == line1:
flag = True
print('Found Match!!')
break
if flag == False:
fo.write(line1)
elif flag == True:
flag == False
fo.seek(0)
fo.close()
fi.close()

最佳答案

当您以追加模式打开文件时,文件对象位置在文件末尾。所以第一次通过时,当它到达 for line2 in fo: 时,fo 中没有更多的行,因此跳过该 block ,并且 flag 仍然为真,因此第一行被写入输出文件。之后,您执行 fo.seek(0),因此您正在检查整个文件中的后续行。

关于python - 在python中写入没有冗余行的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32292966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com