Ich weiß, dass es viele Artikel und Fragen zum Lesen von Dateien in Python gibt. Aber ich frage mich immer noch, was Python dazu gebracht hat, mehrere Möglichkeiten zu haben, die gleiche Aufgabe zu erledigen. Was ich einfach wissen möchte, ist die Auswirkung der Verwendung dieser beiden Methoden auf die Leistung?
Die Verwendung der with
-Anweisung dient nicht der Leistungssteigerung. Ich glaube nicht, dass mit der Verwendung von with
-Anweisung Leistungsgewinne oder -verluste verbunden sind, solange Sie die gleiche Bereinigungsaktivität wie with
statement ausführen automatisch ausführen.
Wenn Sie with
-Anweisung mit open
-Funktion verwenden, müssen Sie die Datei nicht am Ende schließen, weil with
diese automatisch für Sie schließt.
with
statement dient nicht nur zum Öffnen von Dateien, sondern wird auch in Verbindung mit Kontextmanagern verwendet. Grundsätzlich, wenn Sie ein Objekt haben, das Sie sicherstellen möchten, dass es gereinigt wird, sobald Sie damit fertig sind oder irgendwelche Fehler auftreten, können Sie es als context manager und with
statement ruft seine Methoden __enter__()
und __exit__()
beim Eintritt in den with-Block und beim Verlassen des with-Blocks auf. Laut PEP 0343 -
Dieser PEP fügt der Python-Sprache eine neue Anweisung "
with
" hinzu, um es zu ermöglichen, Standardverwendungen von try / finally-Anweisungen auszuschließen.In diesem PEP stellen Kontextmanager die Methoden
__enter__()
und__exit__()
bereit, die beim Eintreten in den Hauptteil der with-Anweisung aufgerufen und beendet werden.
Auch, Leistungstests der Verwendung von with
und nicht die Verwendung von -
Tags und Links python file-io performance