2011-03-06 2 views
1

CSV 파일을 만드는 코드가 있습니다. 파일에 기록하는 행의 순서는 다를 수 있습니다. 나는 CSV 파일이 내가 원하는 것임을 확인하기위한 시험을 쓰고있다. 모든 행이 있고 모든 필드가 동일한 지 확인해야합니다. 나는 아래 코드를 가지고 있지만 행의 순서를 신경 쓰지 않도록 작동시키는 법을 잘 모르고있다. 두 개의 CSV 파일에 동일한 행이 포함되어 있는지 확인하려면 어떻게해야 하나 행의 순서는 중요하지 않습니까?Python은 행의 순서가 중요하지 않을 때 두 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") 

답변

6

당신이 반복 행에 대해 상관하지 않는 경우 : 다른

set(csv1) == set(csv2) 

:

sorted(csv1) == sorted(csv2) 
+0

감사 larsmans –

0

메모리에 맞으면 목록으로 전송하고 정렬하면됩니다.

관련 문제