【发布时间】:2022-01-24 04:35:38
【问题描述】:
我有两个 CSV 文件。我需要将 file1 与 file2 进行比较,并输出 file1 中不在 file2 中的任何行。问题是当 file1 中有两行具有精确值时。输出应该显示不在 file2 中的值,而是将两个值作为重复项删除。有没有办法做到这一点?
我现在使用的代码是
with open('file1.csv', 'r') as t1, open('file2.csv', 'r') as t2:
fileone = t1.readlines()
filetwo = t2.readlines()
with open('addressList.csv', 'w') as outFile:
for line in fileone:
if line not in filetwo:
outFile.write(line)
sys.exit()
文件1:
address, value
2ce8e,200
2ce8e,200
fb0d7,350
fb0d7,225
fb0d7,250
fb0d7,361
fb0d7,175
fb0d7,450
文件2:
address, value
2ce8e,200
fb0d7,350
fb0d7,250
fb0d7,225
fb0d7,175
fb0d7,361
fb0d7,450
输出应该是
address, value
2ce8e,200
【问题讨论】:
-
您可以使用命令行
diff工具完成此操作,而无需任何编程。 -
我需要将输出保存为 csv 格式,因为另一个脚本将使用数据
-
diff打印出不同的行。我只是指出,使用或调整现有工具通常比编写新工具更好。
标签: python python-3.x