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

当行的顺序无关紧要时,Python比较两个CSV文件,python,csv,Python,Csv,我有一些创建CSV文件的代码。它写入文件的行的顺序可能会有所不同。我正在编写一个测试,以确保CSV文件是我所期望的。我需要做的就是检查所有行是否存在,所有字段是否相等。我有下面的代码,但不确定如何让它工作,所以它不关心行的顺序。如何确保两个CSV文件包含相同的行,但行的顺序无关紧要 def assertRowsEqual(self, first, second) error_count = 0 first_f = open(first) csv1 = csv.read

我有一些创建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)
其他:


如果您不关心重复的行:

set(csv1) == set(csv2)
其他: