In questo articolo tratteremo come ottenere e modificare la directory di lavoro in Python. Mentre lavori con gestione dei file potresti aver notato che i file vengono indicati solo con i loro nomi, ad es. ‘GFG.txt’ e se il file non si trova nella directory dello script, Python genera un errore. Il concetto di Directory di lavoro corrente (CWD) diventa importante qui. Considera CWD come la cartella all'interno della quale Python opera. Ogni volta che i file vengono chiamati solo con il loro nome, Python presuppone che inizi nella CWD, il che significa che un riferimento solo al nome avrà successo solo se il file si trova nella CWD di Python.
Nota: La cartella in cui è in esecuzione lo script Python è nota come Directory corrente. Questo potrebbe non essere il percorso in cui si trova lo script Python.
Cos'è il modulo del sistema operativo Python?
Python fornisce un modulo del sistema operativo per interagire con il sistema operativo. Questo modulo rientra nel modulo di utilità standard di Python. Tutte le funzioni nel modulo del sistema operativo aumentano OSError in caso di nomi e percorsi di file non validi o inaccessibili o altri argomenti che hanno il tipo corretto ma non sono accettati dal sistema operativo.
Python Trova la directory corrente
Ottieni una directory dello script Python corrente utilizzando sys.argv[0]
In questo esempio, abbiamo utilizzato sys.argv[0] per recuperare il percorso del file di script e os.percorso.nomedir() estrae la directory corrente dal percorso.
Python3
import> os> import> sys> script_directory> => os.path.dirname(os.path.abspath(sys.argv[> 0> ]))> print> (script_directory)> |
>
>
Produzione :

Ottieni una directory dello script Python corrente
Ottieni la directory dello script Python corrente utilizzando il modulo Ispeziona
In questo esempio, abbiamo utilizzato ispeziona.getfile(ispezione.currentframe()) che restituisce il percorso del file di script corrente e os.percorso.nomedir() estrae la directory corrente dal percorso.
Python3
import> inspect> import> os> script_directory> => os.path.dirname(os.path.abspath(> > inspect.getfile(inspect.currentframe())))> > print> (script_directory)> |
>
>
Produzione :
jtextfield

Ottieni la directory dello script Python corrente
Ottieni la directory di lavoro corrente usando os.getcwd()
In questo esempio, abbiamo utilizzato os.getcwd() per ottenere la directory corrente dello script Python.
Python3
import> os> > print> (> 'File location using os.getcwd():'> , os.getcwd())> |
>
>
Produzione :
File location using os.getcwd(): /home/tuhingfg/Documents/Scripts>
Nota: Utilizzando os.getcwd() non funziona come previsto quando si esegue il codice Python da una directory diversa dallo script Python.
Risultato imprevisto quando si esegue uno script Python da una directory diversa dallo script utilizzando os.getcwd()
Lo script Python è inserito all'interno /home/tuhingfg/Documenti/Script . Quando eseguiamo lo script dall'interno della stessa cartella, fornisce la posizione corretta dello script. Ma quando cambiamo la nostra directory in un altro posto, viene restituita la posizione di quella directory. Questo è perché os.getcwd() considera la directory da cui stiamo eseguendo lo script. Sulla base di ciò, il risultato di os.getcwd() varia anche.
Python3
import> os> > print> (> 'File location using os.getcwd():'> , os.getcwd())> |
>
>
Produzione:

Ottieni la posizione dello script utilizzando os.getcwd()
Ottieni la posizione dello script Python utilizzando il metodo os.path.realpath()
os.path.realpath() può essere utilizzato per ottenere il percorso dello script Python corrente. In realtà, il metodo os.path.realpath() in Python viene utilizzato per ottenere il percorso canonico del nome file specificato eliminando eventuali collegamenti simbolici incontrati nel percorso. Una variabile speciale __file__ viene passato al percorso reale() metodo per ottenere il percorso dello script Python.
In questo esempio, il os.getcwd() E __file__ fornire due risultati diversi. Poiché stiamo eseguendo lo script da una cartella diversa dallo script, os.getcwd() l'output è cambiato in base alla cartella di esecuzione dello script. Ma __file__ genera il risultato costante indipendentemente dalla directory di lavoro corrente.
Python3
import> os> > print> (> 'File location using os.getcwd():'> ,> > os.getcwd())> > print> (f> 'File location using __file__ variable:'> +> > '{os.path.realpath(os.path.dirname(__file__))}'> )> |
>
>
Produzione:
formattatore di stringhe

Ottieni una directory con Python
Nota: __file__ è il percorso del file da cui è stato caricato il modulo se è stato caricato da un file.