왜 파이썬에서 범용 개행 모드가 더 이상 사용되지 않습니까?


26

방금 파일 작업 의 보편적 인 개행 기능이 나오지 않는 것으로 나타났습니다 .

Python 3.5 openmode매개 변수에 대한 설명서는 더 이상 사용되지 않음을 나타냅니다.

'U' 범용 개행 모드 (더 이상 사용되지 않음)

최소한 Python 3.2까지는 인수 open사용법을 문서화 할 때 비슷한 "역 호환성 만"경고가 포함되어 있습니다 mode.

'U' 범용 개행 모드 (이전 버전과의 호환성을 위해 새 코드에서는 사용하지 않아야 함)

파이썬 2.7에서도 비슷한 경고가 문서에 io.open있습니다.

그 이유는 무엇입니까?


2
이것의 논리는 매우 간단합니다. 명명되지 않은 것보다는 명명 된 것을 갖는 것이 "피 토닉"으로 간주됩니다. 따라서 문자 플래그 대신 명명 된 매개 변수를 사용하십시오. 기발한 아이디어는 파이썬의 C 구현의 남은 부분이며, 그것이 제거되고 있다는 것은 놀라운 일이 아닙니다.
World Engineer

파일은 기본적으로 범용 개행 모드로 열리기 때문입니다.
보리스

답변:


37

Python 3 라이브러리 의 open()함수 에는 newline인수가 있습니다. None보편적 개행 을 가능하게 하도록 설정합니다 . 이것이 받아 들여지는 방법으로 mode='U'인수가 중복됩니다.

사용 newline=None(기본값) 보편적 인 줄 바꿈 모드를 활성화 할 수 있습니다.


5
내가 오해 한 것 같습니다. 나는 모드 문자뿐만 아니라 보편적 인 줄 바꿈이 일반적으로 더 이상 사용되지 않는다고 말합니다. 정리해 주셔서 감사합니다.
jpmc26

6

이 질문을 우연히 해결 한 후, 나는 무슨 일이 일어나고 있는지 명확하게 문서를 업데이트했습니다 ( https://github.com/python/cpython/pull/11646/files ).

혼란스러운 암호 테이블 항목 'U'이 사라졌으며 대신 아래에 단락이 있습니다.

허용되는 추가 모드 문자 'U'가 더 이상 적용되지 않으며 더 이상 사용되지 않습니다. 이전 universal newlines에는 텍스트 모드에서 : term : 을 활성화 했는데, 이는 Python 3.0에서 기본 동작이되었습니다. 자세한 내용은 : ref : newline <open-newline-parameter>매개 변수 의 설명서를 참조 하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.