Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich auf statische Dateien in einem Python-Paket zugreifen?

Wie kann ich auf statische Dateien in einem Python-Paket zugreifen?

Mary-Kate Olsen
Freigeben: 2024-12-05 09:10:13
Original
727 Leute haben es durchsucht

How Can I Access Static Files Inside a Python Package?

So greifen Sie auf statische Dateien innerhalb eines Python-Pakets zu

Um eine Datei zu lesen, die sich in einem Python-Paket befindet, gibt es mehrere Ansätze zur Verfügung. Eine empfohlene Methode ist die Verwendung des in Python 3.7 eingeführten Moduls importlib.resources.

from importlib import resources
from . import templates

inp_file = resources.files(templates) / 'temp_file'
# open the file using the file-like stream context manager
with inp_file.open("rt") as f:
    template = f.read()
Nach dem Login kopieren

Dieser Ansatz bietet mehrere Vorteile gegenüber dem alten Modul pkg_resources. Es ist leistungsfähiger, sicherer, erfordert keine Pfadmanipulation und basiert ausschließlich auf der Standardbibliothek.

Für diejenigen, die Python-Versionen vor 3.7 verwenden oder aus Gründen der Abwärtskompatibilität kann die Bibliothek importlib_resources zurückportiert werden.

try:
    from importlib import resources
except ImportError:
    import importlib_resources

from . import templates

inp_file = resources.files(templates) / 'temp_file'
try:
    with inp_file.open("rb") as f:  # or "rt" as text file with universal newlines
        template = f.read()
except AttributeError:
    # Python < PY3.9, fall back to method deprecated in PY3.11.
    template = resources.read_text(templates, 'temp_file')
Nach dem Login kopieren

In diesem Zusammenhang gibt die Funktion resources.files() ein PathLike-Objekt zurück, das den Pfad zur Zieldatei darstellt. Der Parameter „resource_name“ stellt jetzt den Dateinamen innerhalb des Pakets dar, ohne Pfadtrennzeichen. Um auf eine Datei im aktuellen Modul zuzugreifen, geben Sie __package__ als Paketargument an (z. B. resources.read_text(__package__, 'temp_file')).

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!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage