下面是我的python代码,用于查找file_b中与file_a相比缺少的行,但问题是它显示了两个文件中常见的一些行,沿着缺失的行,所以请让我知道您的输入以更正代码。
#!/usr/bin/python
import re
missing = []
found = 0
a_file = open('a.txt','r')
b_file = open('b.txt','r')
for line_a in a_file:
found = 0
for line_b in b_file:
if(re.search(line_a,line_b)):
found = 1
break
if (found == 0):
missing.append(line_a)
a_file.close()
b_file.close()
print(missing)
答案 0 :(得分:1)
嗯,您的代码存在多个问题。不需要re
模块和found
变量。也许re.search
失败了,因为line_a
包含一些特殊字符,正则表达式引擎会对它们进行不同的处理,例如像"K.W wants some $"
这样的短语。
这是一个简化版本,因此您可以以更低的复杂性完成您想要的任务:
#!/usr/bin/python
missing = []
with open('a.txt','r') as a_file:
a_lines = a_file.readlines()
with open('b.txt','r') as b_file:
b_lines = b_file.readlines()
for line_a in a_lines:
for line_b in b_lines:
if line_a in line_b:
break
else:
missing.append(line_a)
print(missing)