Verwenden Sie in Ihrem Python keine readlines () für Anweisungen!

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

Verwenden Sie in Ihrem Python keine readlines () für Anweisungen!
Verwenden Sie \ d nicht in regulären Python 3-Ausdrücken!
Verwenden Sie pathlib in Maya (Python2.7), um sich auf das kommende Python3.7 vorzubereiten
[Einführung in Python] Wie verwende ich den Operator in in der for-Anweisung?
Verwenden Sie config.ini mit Python
Python-Grundlagen ② für Anweisung
Verwenden Sie Datumsangaben in Python
Verwenden Sie Valgrind mit Python
Verwenden Sie Python in Ihrer Umgebung von Win Automation
Verwenden Sie den Profiler in Python
Python: Verwenden Sie Ihre eigene Klasse für Numpy Ndarray
[Python] für Anweisungsfehler
[Für Anfänger] Wie man den Befehl say mit Python benutzt!
Erstellen Sie Ihre eigenen Big Data in Python zur Validierung
Verwenden Sie CASA Toolkit in Ihrer eigenen Python-Umgebung
Praktisch, um Matplotlib-Unterzeichnungen in for-Anweisungen zu verwenden
Python-Liste, für Anweisung, Wörterbuch
Verwenden Sie den let-Ausdruck in Python
Verwenden Sie das Messprotokoll mit Python
Verwenden Sie die Rückruffunktion in Python
Verwenden Sie den Parameterspeicher in Python
Verwenden Sie den HTTP-Cache in Python
Verwenden Sie in Python ein Diktat mit Listenschlüssel
Techniken zum Sortieren in Python
Verwenden Sie Random Forest mit Python
Mach nicht test.py in Python!
Verwenden Sie Spyder von Python IDE
[Python / PyQ] 4. Liste zur Anweisung
Über "für _ in range ():" von Python
So definieren Sie mehrere Variablen in einer Python for-Anweisung
[Road to Intermediate Python] Verwenden Sie die if-Anweisung in der Listeneinschlussnotation
Ich wusste nicht, wie ich die [Python] für die Anweisung verwenden sollte
Überprüfen Sie Python auf Speicherlecks
[Python] Anmelden Ihres eigenen Moduls
Python-Übungen für Anfänger # 2 [für Anweisung / while-Anweisung]
Verwenden Sie Stoff wie in Python (Stoff3)
Verwendung von SQLite in Python
Verwenden Sie als nächstes Python (Flask) für Heroku!
Verwenden Sie rospy mit virtualenv in Python3
Python für Anweisung ~ Was ist iterierbar ~
Wie man MySQL mit Python benutzt
Verwenden Sie Python in pyenv mit NeoVim
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Web Scraping für Anfänger in Python (1)
Verwenden Sie OpenCV mit Python 3 in Window
Führen Sie unittest in Python aus (für Anfänger)
[Python] Neunundneunzig Tabellen, die for-Anweisungen verwenden
Web Scraping für Anfänger in Python (4) -1
Wrap (Teil der) AtCoder Library in Cython zur Verwendung in Python
Installieren Sie Networkx in der Python 3.7-Umgebung zur Verwendung in Malware Data Science-Büchern
Ein Hinweis für diejenigen, die Python in Visual Studio verwenden (ich)
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Verwenden Sie print in Python2 lambda expression
Erstellen Sie Ihre eigenen Linux-Befehle in Python
Verwenden Sie DeepL mit Python (für die Artikelübersetzung)
[LLDB] Erstellen Sie Ihren eigenen Befehl mit Python
Anmerkung von nfc.ContactlessFrontend () von nfcpy von Python
Inject wird für DDD in Python empfohlen