추가 문제 무관하다; 첫 번째 두 행 (원본 파일의 행)도 이중으로 공백을 표시합니다.
실제 문제는 파일을 모드로 열었습니다.
CSV는 바이너리 형식이거나 믿을 수 없습니다. csv 모듈은 오해의 소지가있는 "lineterminator"("rowseparator"여야 함)를 예상대로 작성하지만 Windows C 런타임은 \n
을 \r\n
으로 바꿔서 행 사이에 \r\r\n
을 갖습니다. csv 파일을 Excel과 혼동하면
Windows에서 작동하든 아니든 상관없이 항상 CSV 파일을 'rb', 'wb', 'ab'로 바이너리 모드로 열면 예상 한 * x 상자에서도 rowseparator (CR LF)를 사용하면 코드가 이식 가능하고 데이터에 포함 된 모든 줄 바꿈이 쓰여질 때 다른 것으로 변경되거나 드라마를 유발할 수 있습니다 (입력시 제공됨) 제대로).
오스 문제 :
(1) 루트 디렉토리 (C:\
)에 데이터를 저장하지 마십시오. Windows는 1980 년대 MS-DOS에서 계층 적 파일 시스템을 계승했습니다. 그걸 써.
(2) 코드에 배선 된 파일 이름을 삽입해야하는 경우 원시 문자열 r"c:\test.csv"
을 사용하십시오. "c:\test.csv"
이 있으면 '\ t'는 탭 문자로 해석됩니다. \r
과 비슷한 문제들 \n
(3) 파이썬 매뉴얼의 예제는 견고한 코드보다 간결하게 정렬되어 있습니다.
이 작업을 수행하지 마십시오
w = csv.writer(open('foo.csv', 'wb'))
는이 작업을 수행 :
f = open('foo.csv', 'wb')
w = csv.writer(f)
을 다음 완료되면, 당신은 사용할 수 f
이 당신이 당신의 파일 내용이 있는지 확인하기 위해 f.close()
을 할 수 있도록 디스크로 플러시됩니다. 새로운 with
성명서를 읽으십시오.
무엇이 문제입니까/문제입니까? 나에게 명확하지 않다 .. – poke
"다른 행마다 데이터가 나옵니다. 어떻게 수정합니까?" 이것은 정확히 무엇을 의미합니까? 샘플 출력 대 원하는 샘플 출력을 붙여 넣을 수 있습니까? – Chris
@poke, @Chris : 예상되는 각 데이터 행 다음에 OP에 예기치 않은 빈 행이 삽입됩니다. –