我有一些代码可以创建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")
Run Code Online (Sandbox Code Playgroud)
如果你不关心重复的行:
set(csv1) == set(csv2)
Run Code Online (Sandbox Code Playgroud)
其他:
sorted(csv1) == sorted(csv2)
Run Code Online (Sandbox Code Playgroud)