繁体   English   中英

Python:如何使用for循环执行的次数比文件中包含项目的次数多

[英]Python: How to loop using a for loop more times than there are items in the file

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行,但是我不知道怎么做。

这里

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是第一theFile - fileCheck中的行,而不是第二组中的行; line in theFile是True还是False,依此类推。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM