我想从File1中提取File2中不存在的行
文件1
a b c
文件2
a c
所以输出应该是:
b
bash中的一个可能的命令是:
comm -23 <(sort File1) <(sort File2) > File
它在bash中运行得非常好,但我不知道在Python中如何正确实现.
我试过了
import os os.system("comm -23 <(sort File1) <(sort File2) > File")
并没有奏效.任何提示?
纯python解决方案怎么样?
with open('file1', 'r') as f: lines1 = set(f.read().splitlines()) with open('file2', 'r') as f: lines2 = set(f.read().splitlines()) print(lines1.difference(lines2))
或者减少内存开销:
with open('file1') as f, open('file2') as f2: lines1 = set(map(str.rstrip, f)) print(lines1.difference(map(str.rstrip, f2)))