比较2个文本文件中的行

Mar*_*ler 1 python csv

我有两个大文本文件(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,并检查是否所有的字段都存在于线,独立的顺序.或者,在读取行后命令字段的东西.

Bur*_*lid 6

您可以规范化检查,而不会影响数据.

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)