Considérons le code Python suivant :
import os
print os.getcwd()
J'utilise os.getcwd()
pour [obtenir l'emplacement du répertoire du fichier du script][1]. Lorsque j'exécute le script depuis la ligne de commande, il me donne le chemin correct, alors que lorsque je l'exécute depuis un script exécuté par le code dans une vue Django, il affiche /
.
Comment puis-je obtenir le chemin d'accès au script à partir d'un script exécuté par une vue Django ?
Mise à jour :
Pour résumer les réponses données jusqu'à présent, os.getcwd()
et os.path.abspath()
donnent tous deux le répertoire de travail actuel, qui peut ou non être le répertoire où réside le script. Dans la configuration de mon hôte web,
ne donne que le nom du fichier sans le chemin.__file__
N'y a-t-il pas un moyen dans Python de pouvoir (toujours) recevoir le chemin d'accès dans lequel le script réside ?
[1] : http://www.faqs.org/docs/diveintopython/regression_path.html
J'utilise :
import os
import sys
def get_script_path():
return os.path.dirname(os.path.realpath(sys.argv[0]))
Comme le souligne aiham dans un commentaire, vous pouvez définir cette fonction dans un module et l'utiliser dans différents scripts.