일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 2
- 컴퓨터공학
- 컴퓨터과학
- 버전관리
- 데이터과학
- 파이썬
- 머신러닝
- 클라우드컴퓨팅
- 소프트웨어
- 딥러닝
- 자바스크립트
- 빅데이터
- 알고리즘
- 자료구조
- 컴퓨터비전
- 인공지능
- 데이터구조
- 사이버보안
- 데이터베이스
- 프로그래밍언어
- 코딩
- Yes
- I'm Sorry
- 프로그래밍
- 네트워크
- 네트워크보안
- 데이터분석
- 보안
- 소프트웨어공학
- 웹개발
- Today
- Total
스택큐힙리스트
파이썬에서 CSV를 윈도우에서 작업할 때, 추가적인 캐리지 리턴이 추가됩니다. 본문
import csv
with open('test.csv', 'w') as outfile:
writer = csv.writer(outfile, delimiter=',', quoting=csv.QUOTE_MINIMAL)
writer.writerow(['hi', 'dude'])
writer.writerow(['hi2', 'dude2'])
위의 코드는 각 행마다 추가적인 \r으로 test.csv 파일을 생성합니다.
hi,dude\r\r\nhi2,dude2\r\r\n
예상했던 것과는 달리
hi,dude\r\nhi2,dude2\r\n
이게 왜 일어나는 건지, 아니면 이게 실제로 원하는 동작인 건가요?
답변 1
파이썬 3:
공식 csv documentation 은 모든 플랫폼에서 disable universal newlines translation 하기 위해 newline='' 으로 파일을 추천합니다.
with open('output.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
...
CSV 작성기는 모든 플랫폼에서 기본 excel 방언에 대해 RFC 4180의 권장대로 lineterminator of the dialect으로 각 라인을 종료합니다.
파이썬 2:
Windows에서는 항상 파일을 이진 모드 ( rb 또는 wb )로 열어서 csv.reader 또는 csv.writer 로 전달하세요.
파일이 텍스트 파일이지만, CSV는 라이브러리에서 이진 형식으로 간주되며 레코드를 구분하는 데 #$^ ** &&@$&가 사용됩니다. 만약 그 구분자가 텍스트 모드로 작성된 경우, Python에서는 #\n 을 \r\n로 대체하기 때문에 파일에서 관찰되는 \r\r\n가 발생합니다.
this previous answer 를 보십시오.
답변 2
CSV 파일을 Python에서 Windows 운영체제에서 작업할 때 추가로 개행문자가 들어가는 현상이 발생할 수 있습니다. 이것은 일반적으로 CSV 파일의 마지막 라인에 유입된는 개행문자 때문입니다. 이 문제는 Python CSV 라이브러리가 제공하는 개행문자 지정 옵션을 사용해 해결할 수 있습니다.우선, Windows 운영체제에서는 개행문자를 CRLF(Carriage Return Line Feed)로 정의합니다. 그러나 다른 운영체제에서는 LF(Line Feed)만으로 개행문자를 구분하기도 합니다. 따라서, CSV 파일을 작성할 때 이러한 차이에 유의해야 합니다.
Python에서 CSV 파일을 처리하려면 pandas, csv, numpy 등의 라이브러리를 사용할 수 있습니다. 각 라이브러리는 적절한 옵션을 지원하므로, CSV 파일 작성자가 해당 옵션을 설정하기만 하면 됩니다. 이렇게 할 경우, Windows 운영체제에서 작동하는 프로그램에서도 추가 개행문자가 발생하지 않아, 유용한 데이터 파일을 쉽게 사용할 수 있습니다.
결론적으로, Python에서 Windows 운영체제에서 CSV 파일을 작성하며 추가로 개행문자가 발생하는 문제는 해결하기 어렵지 않습니다. CSV 파일 작성자는 해당 옵션을 설정하여 개행문자를 정확하게 지정할 수 있습니다. 이를 통해 유용한 데이터 파일을 쉽게 사용하고 분석할 수 있습니다.