Lorsqu'un projet Python obtient gros, certains segments de code, telles que les fonctions d'utilité publique, ont tendance à être exécuté à partir de divers endroits:verrouillage sur l'emplacement des fichiers dans un grand projet Python
- d'un
__main__
- d'un processus serveur django
- d'un test dans une suite de test
dans chaque cas, le répertoire de travail pour l'interpréteur python peut être différent et en supposant que le projet couvre Ove r un arbre sous-répertoire, la ligne suivante ne fonctionne pas toujours:
with open('some_file.xml','r') as my_xml:
Il ne fonctionne pas parce que some_file.xml
est pas toujours dans votre répertoire de travail. Vous devez être précis quant à l'emplacement du fichier, cependant, le projet peut être déployé dans divers environnements, donc ajouter simplement le répertoire à l'instruction open
n'est pas une bonne solution.
Ce qui serait un moyen élégant et efficace de "verrouiller" l'emplacement du fichier tout au long du projet?
Notez qu'un fichier de configuration souffrirait le même mauvais sort que le fichier xml - il est une ressource qui n » t existe toujours dans le même répertoire de travail ... – Jonathan
La différence entre ma question et [cette question] (http://stackoverflow.com/questions/1967688/accessing-a-file-relatively-in-python-if-you -do-not-know-your-point-point) est que le code ne peut pas supposer a priori ce que le répertoire de travail est dans le répertoire du projet e – Jonathan