J'utilise Python 3.2 sous Windows 7. Lorsque j'ouvre le shell Python, comment puis-je savoir quel est le répertoire actuel et comment le changer dans un autre répertoire où se trouvent mes modules ?
Vous pouvez utiliser le module os
.
>>> import os
>>> os.getcwd()
'/home/user'
>>> os.chdir("/tmp/")
>>> os.getcwd()
'/tmp'
Mais s'il s'agit de trouver d'autres modules: Vous pouvez définir une variable d'environnement appelée PYTHONPATH
, sous Linux, ce serait comme
export PYTHONPATH=/path/to/my/library:$PYTHONPATH
Ensuite, l'interprète cherche également à cet endroit les modules import
ed. Je suppose que le nom serait le même sous Windows, mais je ne sais pas comment changer.
modifier
Sous Windows:
set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
(extrait de http://docs.python.org/using/windows.html )
éditer 2
... et même mieux: utilisez virtualenv
et virtualenv_wrapper
, cela vous permettra de créer un environnement de développement dans lequel vous pourrez ajouter des chemins de module à votre guise (add2virtualenv
) sans polluer votre installation. environnement de travail "normal".
http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html
tu veux
import os
os.getcwd()
os.chdir('..')
>>> import os
>>> os.system('cd c:\mydir')
En fait, os.system()
peut exécuter toute commande exécutée par la commande windows, et pas seulement changer de répertoire.
Le moyen le plus simple de modifier le répertoire de travail actuel dans python consiste à utiliser le package 'os'. Ci-dessous, un exemple pour ordinateur Windows:
# Import the os package
import os
# Confirm the current working directory
os.getcwd()
# Use '\\' while changing the directory
os.chdir("C:\\user\\foldername")
Changer le répertoire en cours n'est pas le moyen de trouver des modules en Python.
Consultez plutôt la documentation de chemin de recherche du module pour savoir comment Python trouve le module à importer.
Voici un bit pertinent de la section Modules standard :
La variable sys.path est une liste de chaînes qui détermine le chemin de recherche de l’interpréteur pour les modules. Il est initialisé sur un chemin par défaut issu de la variable d'environnement PYTHONPATH ou d'un paramètre par défaut intégré si PYTHONPATH n'est pas défini. Vous pouvez le modifier en utilisant des opérations de liste standard:
>>> import sys
>>> sys.path.append('/ufs/guido/lib/python')
En réponse à votre question initiale sur l'obtention et la configuration du répertoire actuel:
>>> help(os.getcwd)
getcwd(...)
getcwd() -> path
Return a string representing the current working directory.
>>> help(os.chdir)
chdir(...)
chdir(path)
Change the current working directory to the specified path.
Si vous import os
vous pouvez utiliser os.getcwd
pour obtenir le répertoire de travail actuel et vous pouvez utiliser os.chdir
pour modifier votre répertoire.
Vous pouvez essayer ceci:
import os
current_dir = os.path.dirname(os.path.abspath(__file__)) # Can also use os.getcwd()
print(current_dir) # prints(say)- D:\abc\def\ghi\jkl\mno"
new_dir = os.chdir('..\\..\\..\\')
print(new_dir) # prints "D:\abc\def\ghi"