Python:如何使用for循环的次数超过fi中的项

2024-06-02 05:13:33 发布

您现在位置:Python中文网/ 问答频道 /正文

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中,我希望它忽略它并继续移动。当它到达不在fileCheck中的"line 3"时,我希望它执行一系列代码,然后当它到达"line 4"时,它应该跳过它,并且"line 5"。从第6-10行开始,它执行我告诉它的代码。我知道这不起作用,因为fileCheck中只有4行,所以它只执行4次循环,并没有得到所有10行。我想让它在所有10行中循环,但我不知道怎么做


Tags: 文件in内容forclosecheckhaveline
1条回答
网友
1楼 · 发布于 2024-06-02 05:13:33

这里

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+'))

然后使用集合差异:theFile - fileCheck是第一个集合中的行,而不是第二个集合中的行line in theFile是真是假,依此类推

相关问题 更多 >