Skip to main content
 首页 » 编程设计

Python 在行顺序无关紧要时比较两个 CSV 文件

2025年05月04日19lori

我有一些代码可以创建 CSV 文件。它写入文件的行的顺序可能会有所不同。我正在编写测试以确保 CSV 文件符合我的预期。我需要做的就是检查是否所有行都存在并且所有字段都相等。我有下面的代码,但我不确定如何让它工作,所以它不关心行的顺序。如何确保两个 CSV 文件包含相同的行,但行的顺序无关紧要?

 def assertRowsEqual(self, first, second) 
 
    error_count = 0 
    first_f = open(first) 
    csv1 = csv.reader(first_f, delimiter=',', quotechar='"', 
                    quoting=csv.QUOTE_ALL) 
 
    second_f = open(second) 
    csv2 = csv.reader(second_f, delimiter=',', quotechar='"', 
                    quoting=csv.QUOTE_ALL) 
 
    for row1 in csv1: 
        row2 = csv2.next() 
        if row1 != row2: 
          self.fail("NOT THE SAME\n") 

请您参考如下方法:

如果您不关心重复的行:

set(csv1) == set(csv2) 

其他:

sorted(csv1) == sorted(csv2)