2014-10-01 4 views
1
나는 6 개 동일한 라인 (테스트 파일이 here을 다운로드 할 수 있습니다)와 탭으로 구분 된 파일 한

: 만 3 개 라인을 얻을 나는 csv.reader 그들을 읽을csv.reader 분석 파일이 잘못

2635243 Uckfield Uckfield "kfijld,Ъкфийлд 50.96948 0.09589 P PPL GB  ENG E2 21UH  15716  19 Europe/London 2010-05-24 
2635243 Uckfield Uckfield "kfijld,Ъкфийлд 50.96948 0.09589 P PPL GB  ENG E2 21UH  15716  19 Europe/London 2010-05-24 
2635243 Uckfield Uckfield "kfijld,Ъкфийлд 50.96948 0.09589 P PPL GB  ENG E2 21UH  15716  19 Europe/London 2010-05-24 
2635243 Uckfield Uckfield "kfijld,Ъкфийлд 50.96948 0.09589 P PPL GB  ENG E2 21UH  15716  19 Europe/London 2010-05-24 
2635243 Uckfield Uckfield "kfijld,Ъкфийлд 50.96948 0.09589 P PPL GB  ENG E2 21UH  15716  19 Europe/London 2010-05-24 
2635243 Uckfield Uckfield "kfijld,Ъкфийлд 50.96948 0.09589 P PPL GB  ENG E2 21UH  15716  19 Europe/London 2010-05-24 

을하려고 할 때 정확하게 파싱 됨 :

>>> import csv  
>>> len(list(csv.reader(open('test.txt', 'rb'), delimiter='\t'))) 
3 

왜 이런 일이 발생합니까?

편집 : 추가 테스트는 짝수 라인 (1, 3 및 5) 만 구문 분석 중임을 나타냅니다. 일부 EOL 문제 일 수 있습니까?

답변

3

당신은 인용하지 않도록 설정해야하고 작동합니다

len(list(csv.reader(open('test.txt', 'rb'), delimiter='\t', quoting=csv.QUOTE_NONE))) 

여기서 문제는 CSV 파서 필드의 일환으로 새로운 라인 문자 \n를 취한다는 것입니다

를 반환합니다, 당신이 있기 때문에 각 줄의 기본 따옴표는 "입니다. kfijld

관련 문제