206 votes

Comment lire un fichier (statique) à l'intérieur d'un package Python ?

Pourriez-vous me dire comment lire un fichier qui se trouve dans mon package Python ?

Ma situation

Un package que je charge contient un certain nombre de modèles (fichiers texte utilisés comme chaînes) que je souhaite charger à partir du programme. Mais comment spécifier le chemin d'accès à un tel fichier ?

Imaginez que je veuille lire un fichier à partir de :

 package\templates\temp_file

Une sorte de manipulation de chemin ? Suivi du chemin de base du package ?

1voto

BasicWolf Points 8119

Chaque module python de votre package a un attribut __file__

Vous pouvez l'utiliser comme :

 import os 
from mypackage

templates_dir = os.path.join(os.path.dirname(mypackage.__file__), 'templates')
template_file = os.path.join(templates_dir, 'template.txt')

Pour les ressources sur les œufs, voir : http://peak.telecommunity.com/DevCenter/PythonEggs#accessing-package-resources

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X