比较两个csv文件并获得差异

Try*_*ard 5 python csv

我有两个csv文件,我需要比较,然后吐出差异:

CSV格式:

 Name   Produce   Number
 Adam   Apple     5
 Tom    Orange    4
 Adam   Orange    11
Run Code Online (Sandbox Code Playgroud)

我需要比较两个csv文件,然后告诉我板和表2上的Adams苹果之间是否存在差异,并对所有名称和生成数字执行此操作.两个CSV文件的格式都相同.

任何指针将不胜感激

小智 6

我用过csvdiff

$pip install csvdiff
$csvdiff --style=compact col1 a.csv b.csv 
Run Code Online (Sandbox Code Playgroud)

链接到pypi上的包

我发现此链接很有用


Jon*_*nts 5

如果您的CSV文件不是那么大,如果将它们加载到内存中,它们会让您的机器瘫痪,那么您可以尝试以下方法:

import csv
csv1 = list(csv.DictReader(open('file1.csv')))
csv2 = list(csv.DictReader(open('file2.csv')))
set1 = set(csv1)
set2 = set(csv2)
print set1 - set2 # in 1, not in 2
print set2 - set1 # in 2, not in 1
print set1 & set2 # in both
Run Code Online (Sandbox Code Playgroud)

对于大型文件,您可以将它们加载到SQLite3数据库中并使用SQL查询执行相同操作,或者按相关键进行排序,然后执行匹配合并.

  • TypeError:不可用类型:'dict'.来吧! (2认同)

Som*_*ens 1

比较两个不同文件的最佳实用程序之一是diff.

请参阅此处的 Python 实现:在 Python 中使用 difflib 比较两个 .txt 文件