ado*_*tyd 5 python file-io for-loop
我在这里看不到问题,这让我感到疯狂.我正在循环浏览2个文本文件.每个文件中的某些行匹配,有些则不匹配.我正在做的是循环file1.对于该文件中的每一行,循环遍历file2并比较每个元素以查看它们是否相同.发生的事情是我的循环在第一次循环通过file1后停止.这是我的代码:
while f < 50:
for line in file1:
for name in file2:
if name == line:
print 'a match was found'
f+=1
Run Code Online (Sandbox Code Playgroud)
while循环来自其他地方,但它工作正常.我只是把它包含在上下文中.问题是file1只给我第一行,将它与file2中的所有'名称'进行比较然后停止而不是重复file1中下一行的进程.我错过了一些明显的东西吗?
编辑:如果我在第一个for循环之后放入一个print语句并注释掉另一个for循环,它将遍历整个第一个文件
Mar*_*ers 10
您无法循环浏览文件,然后再次遍历同一文件而无需开始.
重新打开file2,调用.seek(0)
file2或将所有行加载到列表中,然后循环遍历.
在您的特定情况下,使用set
名称可能是最快的:
names = set(name.strip() for name in file2)
while f < 50:
for line in file1:
if line.strip() in names:
f += 1
Run Code Online (Sandbox Code Playgroud)
您可以对file1中的行执行相同操作并执行集合交集,前提是行在file1和file2中都是唯一的.
归档时间: |
|
查看次数: |
7549 次 |
最近记录: |