gpt4 book ai didi

python - 比较两个文件并删除公共(public)行

转载 作者:行者123 更新时间:2023-12-05 06:08:45 25 4
gpt4 key购买 nike

我有两个文件。带数据的 File1

DF2SVT-(.CD(),.CP(clk),.D(),.SDN(),.Q(na));

OAI3DSVT-(.A1(na),.A2(),.A3(),.B(),.ZN(y));

GLHSVT-(.D(v),.E(),.Q(y));

DCCDSVT-(.I(w),.ZN(y));

和带有数据的file2

GLHSVT-(.D(v),.E(),.Q(y));

如果 file2 中的行存在于 file1 中,则从 file1 中删除该行并打印 file1 的其余行。所以我想要输出文件 fout 为

DF2SVT-(.CD(),.CP(clk),.D(),.SDN(),.Q(na));

OAI3DSVT-(.A1(na),.A2(),.A3(),.B(),.ZN(y));

DCCDSVT-(.I(w),.ZN(y));

我知道如何使用打印两个文件之间的公共(public)行

for line in file1 & file2:
if line:
print line

但如果存在匹配项,我不知道如何从文件中删除该公共(public)行。

最佳答案

将两个文件的行读入单独的变量。遍历第一个文件的行,并为每一行检查它们是否存在于第二个文件中,如果不存在则将它们保存到第一个文件中。

with open(file1, "r") as file1:
lines_file1 = file1.readlines()
with open(file, "r") as file2:
lines_file2 = file2.readlines()
with open(file1, "w") as f_w:
for line in lines_file1:
if line not in lines_file2
f_w.write(line)

这种方法的缺点是您将整个文件加载到内存中。

关于python - 比较两个文件并删除公共(public)行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65028698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com