Maison >développement back-end >Tutoriel Python >Comment puis-je accéder aux fichiers statiques dans un package Python ?
Imaginez que votre package Python contient des fichiers texte modèles auxquels vous souhaitez accéder depuis votre programme. Lors de la spécification du chemin d'accès à ces fichiers, il devient nécessaire de gérer la structure du package.
Si la compatibilité ascendante n'est pas un problème (c'est-à-dire que vous utilisez Python 3.9 ou supérieur), exploitez le module 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()
Pour les versions Python inférieures à 3.9, pensez à utiliser le module pkg_resources de setuptools distribution.
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)
Localisez vos modèles dans la hiérarchie des packages :
<your-package> +--<module-asking-for-the-file> +--templates/ +--temp_file
Référencez le fichier modèle en utilisant l'une ou l'autre des méthodes :
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)
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!