比较文本文件列表索引超出范围

2024-10-01 00:21:18 发布

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

我有两个包含URL的文本文件。我试图比较这两个文件和打印的链接,如果他们在两个文件中都存在文件。文件代码为:

file1 = open('urllist.txt','r')
file2 =  open('test.txt','r')

file2rl = file2.readlines()
file1rl = file1.readlines()

for i in (0,len(file1rl)):
 for j in (0,len(file2rl)):
  if (file1rl[i] ==  file2rl[j]):
   print file1rl[i]
  else:
   continue

但我得到的错误是:

if (file1rl[i] ==  file2rl[j]):
IndexError: list out of range 

任何帮助都会很有用


Tags: 文件intxturlforlenif链接
3条回答

我将使用set来启用高效查找:

with open('urllist.txt', 'r') as f:
    urls = set(f.readlines())
with open('test.txt','r') as f:
    for line in f:
        if line in urls:
            print(line.strip())

正如@sshashank124所说,range将解决您的错误。但这是一种更具Python的方式:

for file1line in file1rl:
    for file2line in filr2rl:
        if file1line == file2line:
            print file1line

除非文件很大,否则使用集合查找交集要容易得多:

 print set(file('urllist.txt')) & set(file('test.txt'))

现在使用的算法将第一个文件中的每一行与第二个文件中的每一行进行比较!你知道吗

相关问题 更多 >