[英]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.