Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich auf statische Dateien in einem Python-Paket zugreifen?
Stellen Sie sich vor, Ihr Python-Paket enthält Vorlagentextdateien, auf die Sie aus Ihrem Python-Paket heraus zugreifen möchten Programm. Bei der Angabe des Pfads zu diesen Dateien muss die Paketstruktur berücksichtigt werden.
Wenn die Abwärtskompatibilität kein Problem darstellt (d. h. Sie Wenn Sie Python 3.9 oder höher verwenden, nutzen Sie das Modul importlib.resources.
from importlib import resources as impresources from . import templates inp_file = impresources.files(templates) / 'temp_file' with inp_file.open("rt") as f: template = f.read()
Für Python-Versionen unter 3.9 sollten Sie die Verwendung des pkg_resources-Moduls von setuptools in Betracht ziehen Verteilung.
import pkg_resources # Could be a dot-separated package/module name or a "Requirement" resource_package = __name__ resource_path = '/'.join(('templates', 'temp_file')) # Do not use os.path.join() template = pkg_resources.resource_string(resource_package, resource_path) # or for a file-like stream: template = pkg_resources.resource_stream(resource_package, resource_path)
Suchen Sie Ihre Vorlagen in der Pakethierarchie:
<your-package> +--<module-asking-for-the-file> +--templates/ +--temp_file
Referenzieren Sie die Vorlagendatei mit einer der beiden Methoden:
Option 1 (importlib.resources):
from . import templates inp_file = impresources.files(templates) / 'temp_file'
Option 2 (pkg_resources):
resource_path = '/'.join(('templates', 'temp_file')) template = pkg_resources.resource_string(__name__, resource_path)
Das obige ist der detaillierte Inhalt vonWie kann ich auf statische Dateien in einem Python-Paket zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!