Je veux obtenir le chemin du répertoire actuel sous lequel un fichier .py est exécuté.
Par exemple un simple fichier D:\test.py
avec du code:
import os
print os.getcwd()
print os.path.basename(__file__)
print os.path.abspath(__file__)
print os.path.dirname(__file__)
Il est étrange que la sortie soit:
D:\
test.py
D:\test.py
EMPTY
J'attends les mêmes résultats de getcwd()
et path.dirname()
.
Étant donné os.path.abspath = os.path.dirname + os.path.basename
, pourquoi
os.path.dirname(__file__)
retourne vide?
os.path.dirname(filename) + os.path.basename(filename) == filename
car le séparateur de répertoire est manquant. On a plutôt:os.path.join(os.path.dirname(filename), os.path.basename(filename)) == filename
__file__
développe au nom du fichier actuel, vous pouvez donc utiliser une copie textuelle du code de cette réponse.peut être utilisé aussi comme ça:
la source
la source
os.path.realpath(__file__)
retourne l'abspath du script courant; os.path.split (abspath) [0] renvoie le répertoire actuella source
Vous pouvez également utiliser de cette façon
la source