1. Einführung
Temporäre Dateien werden normalerweise zum Speichern von Daten verwendet, die nicht im Speicher gespeichert oder an externe Programme übergeben werden können, die aus der Datei lesen müssen. Im Allgemeinen generieren wir einen eindeutigen Dateinamen im Verzeichnis /tmp, aber das sichere Erstellen temporärer Dateien ist nicht so einfach und erfordert viele Regeln. Versuchen Sie niemals, dies selbst zu tun, sondern nutzen Sie stattdessen Bibliotheksfunktionen. Achten Sie auch darauf, temporäre Dateien zu bereinigen.
Das größte durch temporäre Dateien verursachte Problem besteht darin, dass der Dateiname vorhergesagt werden kann, sodass böswillige Benutzer den temporären Dateinamen vorhersagen und Softlinks erstellen können, um die temporäre Datei zu kapern.
Verwandte kostenlose Lernempfehlungen: Python-Video-Tutorial
2. Einführung in das Tempfile-Modul
Das häufig verwendete Modul zum Erstellen temporärer Dateien ist Tempfile. Die häufig verwendeten Modulbibliotheksfunktionen sind wie folgt:
3. Beispieleinführung: Die folgenden Methoden stellen sichere und unsichere Methoden zum Erstellen temporärer Dateien vor.
3.1 Falsches Beispiel:
Falsch 1:
import os import tempfile # This will most certainly put you at risk tmp = os.path.join(tempfile.gettempdir(), filename) if not os.path.exists(tmp): with open(tmp, "w") file: file.write("defaults")
import os import tempfile open(tempfile.mktemp(), "w")
filename = "{}/{}.tmp".format(tempfile.gettempdir(), os.getpid()) open(filename, "w")
Richtig 1:
fd, path = tempfile.mkstemp() try: with os.fdopen(fd, 'w') as tmp: # do stuff with temp file tmp.write('stuff') finally: os.remove(path)
# 句柄关闭,文件即删除 with tempfile.TemporaryFile() as tmp: # Do stuff with tmp tmp.write('stuff')
tmp = tempfile.NamedTemporaryFile(delete=True) try: # do stuff with temp tmp.write('stuff') finally: tmp.close() # 文件关闭即删除
Python-Tutorial (Video)
Das obige ist der detaillierte Inhalt vonErfahren Sie, wie Sie temporäre Python-Dateien richtig verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!