Python:如何循环使用for循环的次数多于文件

时间:2017-04-30 01:18:42

标签: python file line

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行,但我无法弄清楚如何。

1 个答案:

答案 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是对还是错,等等。