Heim > Backend-Entwicklung > Python-Tutorial > Erfahren Sie, wie Sie temporäre Python-Dateien richtig verwenden

Erfahren Sie, wie Sie temporäre Python-Dateien richtig verwenden

coldplay.xixi
Freigeben: 2021-03-29 10:57:10
nach vorne
2540 Leute haben es durchsucht

Erfahren Sie, wie Sie temporäre Python-Dateien richtig verwenden

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:

  • tempfile.mktemp # Unsicher, Verwendung verboten
  • tempfile.mktemp # Die standardmäßig erstellten tmp-Dateien befinden sich natürlich auch im Verzeichnis /tmp
  • tempfile.TemporaryFile # Dateien im Speicher erstellen, Dateien Es wird nicht auf der Festplatte gespeichert und nach dem Schließen gelöscht (kann verwendet werden)
  • tempfile.NamedTemporaryFile(delete=True) Wenn delete=True, ist der Effekt derselbe wie Wenn es „Falsch“ ist, wird es auf der Festplatte gespeichert (kann verwendet werden)

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")
Nach dem Login kopieren
Falsch 2:

import os
import tempfile
 
open(tempfile.mktemp(), "w")
Nach dem Login kopieren
Falsch 3:

filename = "{}/{}.tmp".format(tempfile.gettempdir(), os.getpid())
open(filename, "w")
Nach dem Login kopieren
3.2 Richtiges Beispiel

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)
Nach dem Login kopieren
Richtig 2:

# 句柄关闭,文件即删除
with tempfile.TemporaryFile() as tmp:
    # Do stuff with tmp
    tmp.write('stuff')
Nach dem Login kopieren
Richtig 3:

tmp = tempfile.NamedTemporaryFile(delete=True)
try:
    # do stuff with temp
    tmp.write('stuff')
finally:
    tmp.close()  # 文件关闭即删除
Nach dem Login kopieren
Verwandte kostenlose Lernempfehlungen:

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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage