web-dev-qa-db-fra.com

Comment connaître / changer le répertoire en cours dans Python shell?

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 ?

196
astay13

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 imported. 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

266
wal-o-mat

tu veux

import os
os.getcwd()
os.chdir('..')
15
simon
>>> 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.

14
shankar_pratap

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")
6
sambeet

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.
6
Steven Rumbalski

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.

4
deontologician

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"


0
Aditya N.S