我有两个大文本文件(200,000多行),CSV格式.我需要逐行比较它们,但字段可能在每一行内切换.
示例文件A.csv:
AAA,BBB,,DDD
EEE,,GGG,HHH
III,JJJ,KKK,LLL
Run Code Online (Sandbox Code Playgroud)
示例文件B.csv:
AAA,,BBB,DDD
EEE,,GGG,HHH
LLL,KKK,JJJ,III
Run Code Online (Sandbox Code Playgroud)
所以对于我的目的,即使字段在第一行和最后一行切换,A.csv也B.csv应该是"相同的".由于每个文件中的字段可能具有不同的顺序,因此通常的选项(如grep或diff)将不起作用.
基本上,我想我需要写一些东西,读取一行的A.csv和B.csv,并检查是否所有的字段都存在于线,独立的顺序.或者,在读取行后命令字段的东西.
您可以规范化检查,而不会影响数据.
with open('big1.csv') as i, open('big2.csv') as j:
a = csv.reader(i)
b = csv.reader(j)
for linea in a:
lineb = next(b)
if sorted(map(str.lower, linea)) != sorted(map(str.lower, lineb)):
print('{} does not match {}'.format(linea, lineb))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
325 次 |
| 最近记录: |