Quand j'exécute le script suivant dans IDLE
import os
print(os.getcwd())
Je reçois la sortie en tant que
D:\testtool
mais quand je cours de l'invite cmd, je reçois
c:\Python33>python D:\testtool\current_dir.py
c:\Python33
Comment puis-je obtenir le même résultat obtenu avec IDLE?
Il semble qu'IDLE remplace son répertoire de travail actuel par l'emplacement du script exécuté, alors que l'exécution du script à l'aide de cmd ne le fait pas et laisse CWD en l'état.
Pour changer le répertoire de travail actuel en celui contenant votre script, vous pouvez utiliser:
import os
os.chdir(os.path.dirname(__file__))
print(os.getcwd())
La variable __file__
Est disponible uniquement si vous exécutez un script à partir d'un fichier et contient le chemin d'accès au fichier. Plus de détails ici: attribut Python __file__ absolu ou relatif?