Come sapere/cambiare la directory corrente in shell di Python?

Sto usando Python 3.2 su Windows 7. Quando ho aperto la shell di Python, come si può sapere che cosa la directory corrente è e come posso modificare a un’altra directory in cui i miei moduli sono?

  • Che cosa vuoi dire?
  • Questo è già stato discusso [qui] [1]: stackoverflow.com/questions/431684/how-do-i-cd-in-python
  • Penso Ignacio significa che non sono destinati a passare alla directory del modulo-percorso. Probabilmente si dovrebbe controllare il PYTHONPATH variabile di ambiente.
InformationsquelleAutor astay13 | 2011-11-23



7 Replies
  1. 272

    È possibile utilizzare il os modulo.

    >>> import os
    >>> os.getcwd()
    '/home/user'
    >>> os.chdir("/tmp/")
    >>> os.getcwd()
    '/tmp'

    Ma se è sulla ricerca di altri moduli: È possibile impostare una variabile d’ambiente chiamata PYTHONPATH, sotto Linux, sarebbe come

    export PYTHONPATH=/path/to/my/library:$PYTHONPATH

    Quindi, l’interprete ricerche anche in questo luogo per imported i moduli. Credo che il nome deve essere lo stesso in Windows, ma non so come cambiare.

    modifica

    Sotto Windows:

    set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib

    (tratto da http://docs.python.org/using/windows.html)

    edit 2

    … e anche meglio: uso virtualenv e virtualenv_wrapper, questo vi permetterà di creare un ambiente di sviluppo in cui è possibile aggiungere il modulo di percorsi come ti piace (add2virtualenv) senza inquinare l’installazione o “normale” ambiente di lavoro.

    http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html

    • stai a destra per modificare la tua domanda per aggiungere il suggerimento circa PYTHONPATH, ma nota che l’OP specifica di Windows…
    • E qual è il problema con PYTHONPATH sotto Windows? Ma ho risolto la mia risposta.
    • Devo impostare PYTHONPATH nella riga di comando di Windows o nella shell di Python?
    • bella, upvoting 🙂
    • astay13: È necessario impostare la riga di comando, ma credo che c’è un menu grafico per rendere persistenti (in caso contrario è necessario re-impostare ogni volta che si riavvia o qualcosa di simile, nel mio caso ogni volta che faccio il log in).
    • su Windows si può impostare una variabile di ambiente globale. Non hanno un sistema di Windows per controllare adesso, ma penso che si può trovare sotto “Pannello di Controllo -> Sistema” – è lì da qualche parte 🙂
    • Hai anche la possibilità di ignorare la variabile di ambiente e invece di accodare sys.path all’interno del vostro script.
    • Grazie a tutti! Penso PYTHONPATH è quello che mi serviva.
    • E come faccio a fare un ls?
    • non impostare PYTHONPATH a livello globale, se si dispone di più di uno installato Python (o programmi installati pacchetto Python con loro, in altre parole non si può mai sapere): si può rompere il tuo installazione in modi misteriosi

  2. 15

    si desidera

    import os
    os.getcwd()
    os.chdir('..')
    • os.chdir(‘C:\Users\Ajeya\Documents\’) ^ SyntaxError: EOL durante la scansione della stringa letterale
    • è necessario raddoppiare le barre rovesciate se li si usa in un normale (non crudo) Python stringa. Python permette anche di utilizzare le barre invece. Così, sia os.chdir('C:/Users/Ajeya/Documents'), o os.chdir('C:\\Users\\Ajeya\\Documents'), o os.chdir(r'C:\Users\Ajeya\Documents').
    • È bene notare che si chiama os.getcwd() solo per scopi di debug, in modo che si può vedere ciò che la directory di lavoro è davanti a noi cambiarlo. Il codice per cambiare veramente il cwd è solo os.chdir('..')
  3. 14
    >>> import os
    >>> os.system('cd c:\mydir')

    Infatti, os.system() in grado di eseguire qualsiasi comando prompt dei comandi di windows in grado di eseguire, non basta cambiare dir.

    • Il File “<stdin>”, line 1 os.system (“cd c:\Users\Ajeya\Documents\’) ^ SyntaxError: EOL durante la scansione della stringa letterale
  4. 6

    Cambiare la directory corrente non è il modo per affrontare la ricerca di moduli in Python.

    Piuttosto, vedere la documentazione per Il Modulo Di Ricerca Percorso Di per come Python reperti modulo di importazione.

    Qui è rilevante po ‘ da Moduli Standard sezione:

    Variabile sys.il percorso è una lista di stringhe che determina la
    interprete percorso di ricerca per i moduli. Viene inizializzato ad un valore predefinito
    percorso intrapreso dalla variabile di ambiente PYTHONPATH, o da un
    built-in di default se PYTHONPATH non è impostato. È possibile modificare utilizzando
    elenco standard operazioni:

    >>> import sys

    >>> sys.path.append('/ufs/guido/lib/python')

    Nel 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.
    • Questa risposta è oro.. Basta aggiungere la directory del progetto come questo:import sys sys.path.append('/home/g/PycharmProjects/your_project/')
  5. 6

    Il modo più semplice per cambiare la directory di lavoro corrente in python utilizzando il ‘sistema’ del pacchetto. Qui di seguito c’è 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")
    • Che differenze ci sono accettati risposta?
    • l’uso di “\\” e di un chiarimento sui computer Windows. Ma sono d’accordo accettato risposta è più descrittivo.
  6. 4

    Se si import os è possibile utilizzare os.getcwd per ottenere la directory di lavoro corrente, ed è possibile utilizzare os.chdir di cambiare directory

  7. 0

    Si può provare questo:

    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"
    
    

Lascia un commento