Python을 사용하여 Windows에서 Unix 줄 끝 문자를 작성하는 방법
Python (Windows)을 사용하여 파일에 쓰고 Unix 줄 끝 문자를 사용하려면 어떻게해야합니까?
예 : 할 때 :
f = open ( 'file.txt', 'w') f.write ( '안녕하세요 \ n') f.close ()
Python은 \ n을 \ r \ n으로 자동 대체합니다.
Python 2 및 3의 경우
참조 : 현대적인 방법 : 바로이 페이지에서 newline = '' 대답을 사용 하십시오.
Python 2 전용 (원래 답변)
줄 끝 문자의 번역을 방지하려면 파일을 바이너리로 엽니 다.
f = open('file.txt', 'wb')
Python 매뉴얼 인용 :
Windows에서 모드에 'b'가 추가되면 바이너리 모드로 파일이 열리므로 'rb', 'wb'및 'r + b'와 같은 모드도 있습니다. Windows의 Python은 텍스트와 바이너리 파일을 구분합니다. 텍스트 파일의 줄 끝 문자는 데이터를 읽거나 쓸 때 자동으로 약간 변경됩니다. 파일 데이터에 대한 이러한 비하인드 수정은 ASCII 텍스트 파일에 적합하지만 JPEG 또는 EXE 파일과 같은 바이너리 데이터를 손상시킵니다. 이러한 파일을 읽고 쓸 때 바이너리 모드를 사용하는 데 매우주의하십시오. Unix에서는 모드에 'b'를 추가하는 것이 문제가되지 않으므로 모든 바이너리 파일에 대해 플랫폼 독립적으로 사용할 수 있습니다.
현대적인 방법 : newline = ''사용
사용 newline=
키워드 매개 변수 ) (io.open 유닉스 스타일의 LF 줄 끝 터미네이터를 사용할 수 :
import io
f = io.open('file.txt', 'w', newline='\n')
이것은 Python 2.6 이상에서 작동합니다. Python 3에서는 대신 내장 open()
함수의 newline=
매개 변수를 사용할 수도 있습니다 io.open()
.
예전 방식 : 바이너리 모드
Python 3에서 작동하지 않는 줄 바꿈 변환을 방지하는 이전 방법은 줄 끝 문자의 변환을 방지하기 위해 파일을 바이너리 모드로 여는 것입니다 .
f = open('file.txt', 'wb') # note the 'b' meaning binary
하지만 파이썬 3에서, 바이너리 모드는 읽을 바이트 가 아닌 문자를 당신이 원하는 일을하지 않도록. 스트림에서 문자열 I / O를 시도 할 때 예외가 발생할 수 있습니다. (예 : "TypeError : 'str'은 버퍼 인터페이스를 지원하지 않습니다").
파일을 열 때 바이너리 의사 모드를 사용해야합니다.
f = open('file.txt', 'wb')
'Program Tip' 카테고리의 다른 글
트위터 부트 스트랩 드롭 다운 토글 링크를 클릭하도록 허용 하시겠습니까? (0) | 2020.11.07 |
---|---|
주어진 사용자의 모든 프로세스를 종료합니다. (0) | 2020.11.07 |
루비 문자열을 날짜로 변환 (0) | 2020.11.07 |
numpy 배열에 항목을 추가하는 방법 (0) | 2020.11.07 |
XML로 정의 된 기존 규칙을 프로그래밍 방식으로 제거하려면 어떻게합니까? (0) | 2020.11.07 |