我有两个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)
如果您的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查询执行相同操作,或者按相关键进行排序,然后执行匹配合并.