web-dev-qa-db-ja.com

Pythonでユニバーサルニューラインモードが廃止されたのはなぜですか?

私は、ファイル操作の niversal newline 機能が廃止されそうなことに気づきました。

Python 3.5 openmodeパラメータのドキュメントは、非推奨であることを示しています:

'U'ユニバーサル改行モード(非推奨)

少なくともPython 3.2、 open までは、mode引数:

'U'ユニバーサル改行モード(下位互換性のため。新しいコードでは使用しないでください)

Python 2.7でも、同様の警告が io.open

これの理由は何ですか?

27
jpmc26

Python 3ライブラリの open() function にはnewline引数があります。これをNoneに設定すると、ユニバーサル改行。これは、mode='U'引数は冗長です。

使用する newline=Noneユニバーサル改行モードを有効にします(これがデフォルトです)。

39
Robert Harvey

この質問に出くわした後、私はドキュメントを更新して何が起こっているのかを明確にしました( https://github.com/python/cpython/pull/11646/files )。

'U'のわかりにくいテーブルエントリは紛らわしく、代わりに次のように記載されています。

追加のモード文字'U'が許可されていますが、これは効果がなく、非推奨と見なされています。以前はテキストモードで:term:universal newlinesを有効にしていましたが、これはPython 3.0でデフォルトの動作になりました。詳細については、:ref:newline <open-newline-parameter>パラメータのドキュメントを参照してください詳細。

7
ncoghlan