Récupération de fichiers statiques dans les packages Python
Problème :
Comment récupérer un fichier empaqueté au sein d'un package Python, étant donné qu'il n'est pas accessible via le chemin de fichier standard méthodes ?
Structure du package :
Considérons une structure de package dans laquelle les modèles sont stockés dans un dossier "templates" imbriqué :
<package> |-- <module> |-- templates |-- temp_file
Solution :
Il existe plusieurs méthodes pour récupérer le fichier :
1. Utilisation de importlib.resources (Python 3.7) :
from importlib import resources as impresources resource_package = __name__ resource_path = "templates/temp_file" try: inp_file = impresources.files(resource_package) / resource_path with inp_file.open("rb") as f: template = f.read() except AttributeError: # Python < 3.9 template = impresources.read_text(resource_package, resource_path)
2. Utilisation de pkg_resources (setuptools) :
import pkg_resources resource_package = __name__ resource_path = "/".join(("templates", "temp_file")) template = pkg_resources.resource_string(resource_package, resource_path)
Détails :
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!