Gerade als ich den Code überprüfte, schrieb ich vor langer Zeit
python
try:
with log_path.open(encoding='utf-8') as log_file:
for line in log_file.readlines():
...
Ich bemerkte, dass ich hier und da solchen Code schrieb.
Das Dateihandle von Python (Hinweis: Version 2.4 oder höher) ist ein Iterator, also im obigen Code
python
for line in log_file.readlines():
Linie ist
python
for line in log_file:
Sollte geschrieben werden.
Auch in Kombination mit enumerate ()
python
for line_number, line in enumerate(log_file.readlines(), 1):
nicht,
python
for line_number, line in enumerate(log_file, 1):
Es gibt kein Problem beim Schreiben.
Wenn Sie aus irgendeinem Grund die Datei wirklich sofort mit der Methode "readlines ()" lesen möchten, anstatt "readlines ()" in die "for" -Anweisung zu schreiben
python
log_lines = []
try:
with log_path.open(encoding='utf-8') as log_file:
log_lines = log_file.readlines()
except IOError:
pass
for line in log_lines:
...
Ich denke, es sollte so geschrieben werden.
Ich sehe manchmal viel langen Code im with
-Block, aber ich sollte die geöffnete Datei schließen, wenn ich sie nicht brauche, und der with
-Block hat keinen Gültigkeitsbereich, sodass ich unnötige Verarbeitung überspringen kann, ohne schlampig zu schreiben. Korrekt.
Wie oben erwähnt, war ich ziemlich verwirrt darüber, wie schlecht mein Code war, daher war es ein Tipp, den ich mit meiner eigenen Vorsicht schrieb.
Recommended Posts