我正在尝试编写脚本以仅从文件a中获取文件b中找不到的行。
归档一个:
aaa
aba
atca
baf
文件b:
aba
baf
预期输出:
aaa
atca
答案 0 :(得分:2)
我可以想到两种主要方法:
with open("file_b") as fb:
lines = fb.readlines()
# you may also want to remove whitespace characters like `\n` at the end of each line
lines = [x.strip() for x in lines]
with open("file_a") as fa:
ifa = iter(fa)
for line in ifa:
sline = line.strip()
if sline not in lines:
print(sline)
优点:
缺点:
file_b
,因此对内存的要求更高with open("file_a") as fa:
ifa = iter(fa)
for linea in ifa:
slinea = linea.strip()
unique = True
with open("file_b") as fb:
ifb = iter(fb)
for lineb in ifb:
slineb = lineb.strip()
if slineb == slinea:
unique = False
break
if unique:
print(slinea)
优点:
缺点:
file_b
中每一行的所有file_a
我真的不知道您要执行的操作的参数,因此我不知道您需要优化的内容(如果有的话)。在工作中,我通常会处理比工作站内存大很多倍的文件,但是我也知道磁盘I / O比内存访问慢得多。所以选择你的毒药。 :)