developer tip

어떻게 파이썬의 file.write ()가 Windows에서 Linux와 같은 줄 바꿈 형식 ( "\ r \ n"대 "\ n")을 사용하도록 할 수 있습니까?

optionbox 2020. 12. 8. 07:58
반응형

어떻게 파이썬의 file.write ()가 Windows에서 Linux와 같은 줄 바꿈 형식 ( "\ r \ n"대 "\ n")을 사용하도록 할 수 있습니까?


간단한 코드가 있습니다.

f = open('out.txt','w')
f.write('line1\n')
f.write('line2')
f.close()

코드는 Windows에서 실행되고 파일 크기 12 bytes를 제공하고 Linux는 제공합니다 11 bytes.

리눅스에서 그것은 \n승리를 위해\r\n

하지만 내 코드에서 새 줄을 \n. 문제는 어떻게 파이썬이 \n항상 새 줄을 유지 하고 운영 체제를 확인하지 않도록 할 수 있습니까 ?


당신의 파일을 열 필요가 바이너리 모드wb대신 w. 그렇지 않으면 줄 끝 문자가 OS 특정 문자로 자동 변환됩니다.

다음은에 대한 Python 참조에서 발췌 한 것입니다 open().

기본값은 텍스트 모드를 사용하는 것입니다.이 모드는 '\ n'문자를 쓰기 및 읽기시 플랫폼 별 표현으로 변환 할 수 있습니다.


여전히 textmode를 사용하고 키워드 인수 newline을 사용하여 linefeed-newline을 강제 할 수 있습니다.

f = open("./foo",'w',newline='\n')

Python 3.4.2로 테스트되었습니다.

편집 : 이것은 Python 2.7에서 작동하지 않습니다.

참고 URL : https://stackoverflow.com/questions/9184107/how-can-i-force-pythons-file-write-to-use-the-same-newline-format-in-windows

반응형