Sto usando Python 3.2 su Windows 7. Quando apro la shell Python, come posso sapere qual è la directory corrente e come posso cambiarla in un'altra directory dove sono i miei moduli?
Sto usando Python 3.2 su Windows 7. Quando apro la shell Python, come posso sapere qual è la directory corrente e come posso cambiarla in un'altra directory dove sono i miei moduli?
Risposte:
Puoi usare il os
modulo.
>>> import os
>>> os.getcwd()
'/home/user'
>>> os.chdir("/tmp/")
>>> os.getcwd()
'/tmp'
Ma se si tratta di trovare altri moduli: è possibile impostare una variabile d'ambiente chiamata PYTHONPATH
, sotto Linux sarebbe come
export PYTHONPATH=/path/to/my/library:$PYTHONPATH
Quindi, l'interprete cerca anche in questo posto i import
moduli ed. Immagino che il nome sarebbe lo stesso in Windows, ma non so come cambiare.
modificare
Sotto Windows:
set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
(tratto da http://docs.python.org/using/windows.html )
modifica 2
... e ancora meglio: usa virtualenv
e virtualenv_wrapper
, questo ti permetterà di creare un ambiente di sviluppo in cui puoi aggiungere i percorsi dei moduli come preferisci ( add2virtualenv
) senza inquinare l'installazione o l'ambiente di lavoro "normale".
http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html
PYTHONPATH
, ma nota che l'OP specifica Windows ...
sys.path
all'interno dello script.
PYTHONPATH
livello globale se hai installato più di un Python (o hai programmi installati che raggruppano Python con loro - in altre parole non lo saprai mai): potrebbe interrompere l'installazione in modi misteriosi
tu vuoi
import os
os.getcwd()
os.chdir('..')
os.chdir('C:/Users/Ajeya/Documents')
, oppure os.chdir('C:\\Users\\Ajeya\\Documents')
, oppure os.chdir(r'C:\Users\Ajeya\Documents')
.
os.getcwd()
solo a scopo di debug in modo che possiamo vedere quale sia la directory di lavoro prima di cambiarla. Il codice per cambiare effettivamente cwd
è soloos.chdir('..')
>>> import os
>>> os.system('cd c:\mydir')
In effetti, os.system()
può eseguire qualsiasi comando eseguibile dal prompt dei comandi di Windows, non solo cambiare dir.
La modifica della directory corrente non è il modo di gestire la ricerca di moduli in Python.
Piuttosto, consulta la documentazione di The Module Search Path per come Python trova quale modulo importare.
Ecco un bit rilevante dalla sezione Moduli standard :
La variabile sys.path è un elenco di stringhe che determina il percorso di ricerca dell'interprete per i moduli. Viene inizializzato su un percorso predefinito prelevato dalla variabile di ambiente PYTHONPATH o da un predefinito predefinito se PYTHONPATH non è impostato. È possibile modificarlo utilizzando le operazioni di elenco standard:
>>> import sys
>>> sys.path.append('/ufs/guido/lib/python')
Per rispondere alla tua domanda originale su come ottenere e impostare la directory corrente:
>>> 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.
import sys sys.path.append('/home/g/PycharmProjects/your_project/')
Il modo più semplice per cambiare l'attuale directory di lavoro in python è usare il pacchetto 'os'. Di seguito è riportato un esempio per computer Windows:
# Import the os package
import os
# Confirm the current working directory
os.getcwd()
# Use '\\' while changing the directory
os.chdir("C:\\user\\foldername")
Se è import os
possibile utilizzare os.getcwd
per ottenere la directory di lavoro corrente e è possibile utilizzare os.chdir
per modificare la directory