python - 比较两个文件并删除公共行
问题描述
我有两个文件。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));
我知道如何使用打印两个文件之间的公共行
for line in file1 & file2:
if line:
print line
但是如果匹配存在,我不知道如何从文件中删除该公共行。
解决方案
将两个文件的行读入单独的变量中。遍历第一个文件的行,并为每个文件检查它们是否存在于第二个文件中,如果不存在则将它们保存到第一个文件中。
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 - 蟒蛇 2.7。使用 pandas 打印所有列和行来扩大输出显示。
- python - 将 Matlab 代码转换为 Python - FFT
- java - 在 SpringBoot Java 中发送电子邮件模板
- javascript - 图像隐藏在按钮内,但是当我为其设置背景颜色时我可以看到它
- angular - 无法将图像从我的网站直接上传到 S3
- function - 我需要帮助或示例来获得在 Scilab 上使用 intg 的相对错误
- r - 闪亮的示例应用程序未运行
- c# - 如何在 C# 中将 XElement 字符串解析为双精度数组
- excel - 选择一个不连续的范围
- c++ - SSL_Read() 返回 SSL_ERROR_ZERO_RETURN 但 ERR_get_error() 为 0