it-swarm.com.de

Warum ist der universelle Newlines-Modus in Python veraltet?

Mir ist gerade aufgefallen, dass die Funktion niversal Newline von Dateivorgängen auf dem Weg nach draußen zu sein scheint.

Die Dokumentation für den Parameter Python 3.5 open 's mode zeigt an, dass er veraltet ist:

'U' Universal Newlines-Modus (veraltet)

Zumindest bis Python 3.2, open enthält eine ähnliche Warnung "Nur Abwärtskompatibilität", wenn die Verwendung von mode Streit:

'U' Universal Newlines-Modus (aus Gründen der Abwärtskompatibilität; sollte nicht in neuem Code verwendet werden)

Selbst in Python 2.7) wird eine ähnliche Warnung in die Dokumentation von io.open .

Was ist der Grund dafür?

27
jpmc26

Die Funktion open() in der Bibliothek Python 3) hat ein Argument newline. Wenn Sie es auf None setzen, wird es aktiviert universelle Zeilenumbrüche. Dies ist die akzeptierte Methode, um das mode='U' Argument überflüssig.

Verwenden newline=None, um den universellen Zeilenumbruchmodus zu aktivieren (dies ist die Standardeinstellung).

39
Robert Harvey

Nachdem ich über diese Frage gestolpert bin, habe ich die Dokumentation aktualisiert, um klarer zu machen, was los ist ( https://github.com/python/cpython/pull/11646/files ).

Der verwirrend kryptische Tabelleneintrag für 'U' ist weg, und stattdessen gibt es weiter unten einen Absatz, der besagt:

Es ist ein zusätzliches Moduszeichen zulässig, 'U', der keine Wirkung mehr hat und als veraltet gilt. Es war zuvor aktiviert: term: universal newlines im Textmodus, der zum Standardverhalten in Python 3.0) wurde. Weitere Informationen finden Sie in der Dokumentation zu: ref: newline <open-newline-parameter> Parameter für weitere Details.

7
ncoghlan