Program Tip

Python을 사용하여 Windows에서 Unix 줄 끝 문자를 작성하는 방법

programtip 2020. 11. 7. 10:25
반응형

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')

참고 URL : https://stackoverflow.com/questions/2536545/how-to-write-unix-end-of-line-characters-in-windows-using-python

반응형