使用python调试列表
问题描述:
我有一个py脚本(致谢alexander from Comparing large files with grep or python)调试两个字符串列表。使用python调试列表
现在我想修改调试名单,并删除重复的字符串:
filename_1 = 'A.txt'
filename_2 = 'B.txt'
filename_3 = 'C.txt'
with open(filename_1, 'r') as f1, open(filename_2, 'r') as f2, open(filename_3, 'w') as fout:
s = set(val.strip() for val in f1.readlines())
for row in f2:
row = row.strip()
if row not in s:
fout.write(row + '\n')
列表的内容:
A.txt
string1
string2
B.txt
string1
string3
预期的结果:
C.txt
string1
string2
string3
感谢
PD:我是新人,我很抱歉。我真正需要的是从列表A中删除B的内容。无论如何,谢谢。
这就是答案,已经研究(3例):
取下A.TXT列表并退出B.txt内容C.txt
a=set(line.strip().lower() for line in open('A.txt').readlines())
b=set(line.strip().lower() for line in open('B.txt').readlines())
open("C.txt", "w").write("\n".join(a.difference(b)))
比较A.TXT和B.txt并显示新线B.txt在C.txt
a=set(line.strip().lower() for line in open('A.txt').readlines())
b=set(line.strip().lower() for line in open('B.txt').readlines())
open("C.txt", "w").write("\n".join(b.difference(a)))
合并A.TXT和B.txt的内容复制到C.txt
a=set(line.strip().lower() for line in open('A.txt').readlines())
b=set(line.strip().lower() for line in open('B.txt').readlines())
open("C.txt", "w").write("\n".join(b | a))
答
该文件的第一部分包含f2
中的那些不在f1
中的项目,因此只需将所有f1
的内容添加到结果中即可。
with open(filename_1, 'r') as f1, open(filename_2, 'r') as f2, open(filename_3, 'w') as fout:
s = set(val.strip() for val in f1.readlines())
for row in f2:
row = row.strip()
if row not in s:
fout.write(row + '\n')
for row in s:
fout.write(row + '\n')
等等等等你试过了什么,你遇到了什么问题? –
删除重复的字符串 – acaler
从listA和listB中删除重复的字符串,然后将结果保存到列表C?如果是这样,为什么listC在listA和listB中重复时包含'string2'? –