Sto usando Python 3.2 su Windows 7. Quando apro la shell Python, come faccio a sapere qual è la directory corrente e come posso cambiarla in un'altra directory dove sono i miei moduli?Come sapere/cambiare la directory corrente nella shell Python?
risposta
È possibile utilizzare il modulo os
.
>>> 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
Poi, l'interprete cerca anche in questo posto per import
moduli ed. Immagino che il nome sarebbe lo stesso in Windows, ma non so come cambiarlo.
modificare
In Windows:
set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
(tratto da http://docs.python.org/using/windows.html)
Edit 2
... e ancora meglio: usare virtualenv
e virtualenv_wrapper
, questo lo farà per creare un ambiente di sviluppo in cui è possibile aggiungere percorsi modulo come desiderato (add2virtualenv
) senza inquinare l'installazione o l'ambiente di lavoro "normale".
http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html
hai ragione di modificare la tua domanda per aggiungere il suggerimento su 'PYTHONPATH', ma nota che l'OP specifica Windows ... – simon
E qual è il problema con PYTHONPATH in Windows? Ma ho risolto la mia risposta. –
Devo impostare PYTHONPATH nella riga di comando di Windows o nella shell Python? – astay13
Se import os
è possibile utilizzare os.getcwd
per ottenere la directory di lavoro corrente, ed è possibile utilizzare os.chdir
per cambiare la directory
si desidera
import os
os.getcwd()
os.chdir('..')
os.chdir ('C: \ Users \ Ajeya \ Documents \') ^ SintassiErrore: EOL durante la scansione della stringa letterale – AAI
@Qualunque, è necessario per raddoppiare i backslash se li si utilizza in una normale (non grezza) stringa Python. Python ti consente anche di usare le barre in avanti. Pertanto, sia 'os.chdir ('C:/Users/Ajeya/Documents')', o 'os.chdir ('C: \\ Users \\ Ajeya \\ Documents')', o 'os.chdir (r 'C: \ Users \ Ajeya \ Documents') '. –
cambiare la directory corrente non è il modo di trattare con la ricerca di moduli in Python.
Piuttosto, vedere i documenti per The Module Search Path per come Python trova il modulo da importare.
Qui è un po 'rilevante dal Standard Modules sezione:
The variable sys.path is a list of strings that determines the interpreter’s search path for modules. It is initialized to a default path taken from the environment variable PYTHONPATH, or from a built-in default if PYTHONPATH is not set. You can modify it using standard list operations:
>>> import sys
>>> sys.path.append('/ufs/guido/lib/python')
In risposta alla tua domanda iniziale 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 os
>>> os.system('cd c:\mydir')
Infatti, os.system()
può eseguire qualsiasi comando che il prompt dei comandi di Windows può eseguire, non solo cambiare dir.
File "
Il modo più semplice per cambiare la directory di lavoro corrente 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 chaning the directory
os.chdir("C:\\user\\foldername")
- 1. Directory corrente dello script della shell?
- 2. Salvataggio della directory corrente nella cronologia zsh
- 3. Come elencare i file nella directory corrente?
- 4. django, python: ricarica la funzione nella shell
- 5. Come trovo la directory corrente?
- 6. Stampa l'eccezione corrente nella shell interattiva PDB
- 7. Come ottenere la directory di lavoro corrente usando python 3?
- 8. Determinare la shell dell'utente corrente
- 9. Calcola la dimensione dei file nella shell
- 10. Come modificare la directory corrente di SBCL?
- 11. npm installare il modulo nella directory corrente
- 12. Compilare l'ultimo file utilizzato nella directory corrente
- 13. Come posso ottenere la directory utente corrente?
- 14. Esecuzione di Shell Script dalla directory corrente senza "" ./filename "
- 15. Ottieni la directory batchfile corrente
- 16. Nome cartella Python nella directory
- 17. Come rilevare la directory corrente in cui eseguo il mio script di shell?
- 18. QSettings(): Come salvare nella directory di lavoro corrente
- 19. Come si scompatta una sottodirectory nella directory corrente?
- 20. Ottenere un elenco di tutte le sottodirectory nella directory corrente
- 21. Posso scrivere in corsivo nella shell Python?
- 22. Come posso importare da un file nella directory corrente in Python 3?
- 23. Python - subprocesses e la shell python
- 24. imposta JFileChooser per aprire la directory corrente
- 25. File server semplice per servire la directory corrente
- 26. Come posso importare una libreria Python situata nella directory di lavoro corrente?
- 27. In windows 7 git-bash, c'è un modo per esplorare la directory nella posizione corrente?
- 28. Come impostare la directory corrente di SBCL usando la melma?
- 29. Run script di shell per ogni file nella directory
- 30. Ember.js - nuovo comando ember che installa il progetto nella directory home anziché nella directory corrente
@Ignacio, cosa intendi? – astay13
Questo è già stato discusso [qui] [1]: http://stackoverflow.com/questions/431684/how-do-i-cd-in-python – mudda
@ astay13 - Penso che Ignacio significhi che tu non intendono modificare la directory nel percorso del modulo. Probabilmente dovresti controllare la variabile di ambiente PYTHONPATH. – simon