728x90
반응형
질문 : Python으로 작성된 CSV 파일에는 각 행 사이에 빈 줄이 있습니다.
import csv
with open('thefile.csv', 'rb') as f:
data = list(csv.reader(f))
import collections
counter = collections.defaultdict(int)
for row in data:
counter[row[10]] += 1
with open('/pythonwork/thefile_subset11.csv', 'w') as outfile:
writer = csv.writer(outfile)
for row in data:
if counter[row[10]] >= 504:
writer.writerow(row)
이 코드 thefile.csv
읽고 변경하고 결과를 thefile_subset1
씁니다.
그러나 결과 csv를 Microsoft Excel에서 열면 각 레코드 뒤에 추가 빈 줄이 있습니다!
여분의 빈 줄을 넣지 않는 방법이 있습니까?
답변
Python 2에서는 'w'
대신 'wb'
모드로 outfile
을 엽니 다. csv.writer
는 \r\n
을 파일에 직접 씁니다. 당신은 바이너리 모드로 파일을 열 수없는 경우, 그것은 쓸 것 \r\r\n
윈도우 텍스트 모드가 변환됩니다 이유로 인해 각 \n
에 \r\n
.
Python 3에서는 필수 구문이 변경되었으므로 (아래 문서 링크 참조) 대신 추가 매개 변수 newline=''
(빈 문자열)을 사용 outfile
예:
# Python 2
with open('/pythonwork/thefile_subset11.csv', 'wb') as outfile:
writer = csv.writer(outfile)
# Python 3
with open('/pythonwork/thefile_subset11.csv', 'w', newline='') as outfile:
writer = csv.writer(outfile)
설명서 링크
- https://docs.python.org/2/library/csv.html#csv.writer
- https://docs.python.org/3/library/csv.html#csv.writer
출처 : https://stackoverflow.com/questions/3348460/csv-file-written-with-python-has-blank-lines-between-each-row
728x90
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
파이썬에서 스레딩을 사용하는 방법 (0) | 2021.09.14 |
---|---|
Python 배열 마지막 항목 부터 탐색 하는 방법 (0) | 2021.09.13 |
Python 스크립트를 독립 실행 형 실행 파일로 컴파일하는 방법 (0) | 2021.09.13 |
파이썬 정수를 이진수로 변환하는 방법 (0) | 2021.09.13 |
macOS 또는 OS X에 pip를 설치하는 방법 (0) | 2021.09.13 |