Maison >développement back-end >Tutoriel Python >Comment puis-je lire efficacement les fichiers statiques dans mes packages Python ?
La lecture de fichiers dans des packages Python peut être difficile, en particulier lorsqu'il s'agit d'accéder à des fichiers statiques qui sont ne fait pas partie du code lui-même. Cet article explore deux méthodes pour y parvenir : en utilisant le module pkg_resources et le nouveau module importlib.resources.
Le module pkg_resources de la distribution setuptools est un module traditionnel approche pour accéder aux ressources dans les packages. Cependant, elle est moins performante que les méthodes plus récentes.
import pkg_resources # Resource package and path resource_package = __name__ resource_path = '/'.join(('templates', 'temp_file')) # Get the resource as a string or stream template = pkg_resources.resource_string(resource_package, resource_path) # or template = pkg_resources.resource_stream(resource_package, resource_path)
Pour Python versions 3.7 et supérieures, le module importlib.resources fournit un moyen plus efficace et intuitif d'accéder aux ressources.
from importlib import resources # Resource package (must be a package) resource_package = __name__ + '.templates' # Get the resource as a file object (or stream) inp_file = resources.files(resource_package) / 'temp_file' with inp_file.open("rt") as f: template = f.read()
La méthode importlib.resources est nettement plus rapide que pkg_resources. De plus, il est plus sûr et plus intuitif car il repose sur des packages Python plutôt que sur des chaînes de chemin. Pour les versions Python inférieures à 3.7, une bibliothèque importlib.resources rétroportée peut être utilisée.
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!