Maison > développement back-end > Tutoriel Python > Comment puis-je accéder aux fichiers statiques dans un package Python ?

Comment puis-je accéder aux fichiers statiques dans un package Python ?

Mary-Kate Olsen
Libérer: 2024-12-05 09:10:13
original
735 Les gens l'ont consulté

How Can I Access Static Files Inside a Python Package?

Comment accéder aux fichiers statiques dans un package Python

Pour lire un fichier situé dans un package Python, il existe plusieurs approches disponibles. Une méthode recommandée consiste à utiliser le module importlib.resources introduit dans Python 3.7.

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()
Copier après la connexion

Cette approche offre plusieurs avantages par rapport à l'ancien module pkg_resources. Elle est plus performante, plus sûre, ne nécessite aucune manipulation de chemin et s'appuie uniquement sur la bibliothèque standard.

Pour ceux qui utilisent des versions Python antérieures à 3.7, ou pour une compatibilité ascendante, la bibliothèque importlib_resources peut être rétroportée.

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')
Copier après la connexion

Dans ce contexte, la fonction resources.files() renvoie un objet PathLike qui représente le chemin d'accès au fichier cible. Le paramètre nom_ressource représente désormais le nom de fichier dans le package, sans aucun séparateur de chemin. Pour accéder à un fichier dans le module actuel, spécifiez __package__ comme argument du package (par exemple, resources.read_text(__package__, 'temp_file')).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal