theFile = open('theFile', 'r+')
fileCheck = open('fileCheck', 'r+')
numOfFiles = 3
currentNum = 0
def check():
for i in theFile:
for lines in fileCheck:
if i == lines:
print("We already have " + i)
break
else:
print("We don't have " + i)
break
check()
fileCheck.close()
theFile.close()
fileCheck内容是:
line 1
line 2
line 4
line 5
文件内容为:
line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
line 9
line 10
我正在尝试遍历这两个文件,以检查theFile
中的内容是否在fileCheck
中。例如,如果"line 1"
已经在fileCheck
中,我希望它忽略它并继续前进。当它到达"line 3"
不在fileCheck
时,我希望它执行一系列代码,然后当它到达"line 4"
时,它应该跳过它并"line 5"
,太。从第6-10行开始,它执行我告诉它要做的代码。我知道这不起作用,因为fileCheck
中只有4行,所以它只执行该循环4次,而不是全部10行。我希望它遍历所有10行,但我无法弄清楚如何。
答案 0 :(得分:0)
下面
for i in theFile:
for lines in fileCheck:
...
您似乎尝试不止一次迭代fileCheck。在这种情况下,您将不得不以某种方式重置它(例如,重复
fileCheck = open('fileCheck', 'r+')
但你可以从一次阅读整个文件开始:
fileCheck = list(open('fileCheck', 'r+')
你考虑过吗
theFile = set(open('theFile, 'r+'))
fileCheck = set(open('fileCheck', 'r+'))
然后使用set difference:theFile - fileCheck
是第一组而不是第二组中的行; line in theFile
是对还是错,等等。