Cambia la directory di lavoro in Python
Questo articolo discute come puoi cambiare la directory di lavoro corrente da Python in un’altra posizione.
Usa il modulo os
per cambiare directory in Python
Supponiamo, per qualche motivo, di voler modificare la directory di lavoro tramite Python anziché la console dei comandi. In tal caso, il modulo os
fornisce strumenti per varie utilità del sistema operativo direttamente tramite Python.
import os
Diciamo che sei attualmente in una directory di lavoro in /Users/user
e vuoi cambiare in Users/user2
: prima verifica la directory di lavoro corrente in cui ti trovi stampando il risultato di os.getcwd()
. Poi si chiama il blocco os.chdir("Users/user2")
per cambiare la directory di lavoro corrente.
print(os.getcwd())
os.chdir("/Users/user2")
print(os.getcwd())
Produzione:
/Users/user
/Users/user2
Verifica che il tuo programma abbia cambiato con successo le directory di lavoro da user
a user2
.
Controllo delle eccezioni
Il percorso viene immesso dall’utente, quindi è molto probabile che si verifichino errori di input. Ad esempio, l’utente immette un percorso inesistente; questa funzione sarà probabilmente molto soggetta a eccezioni FileNotFound. Detto questo, dovremmo implementare il controllo delle eccezioni.
Usa if-else
per verificare la presenza di errori
Il modo più semplice per farlo è controllare se il percorso specificato esiste usando if-else
:
import os
def changeDir(newPath):
if os.path.exists(newPath):
os.chdir("Directory moved: ", newPath)
print(os.getcwd())
else:
print("Directory ", newPath, " not found.")
print("Base directory: ", os.getcwd())
changeDir("/Users/user2")
changeDir("/Users/nonexistentpath")
Supponiamo che /Users/user2
sia un percorso di file esistente e che /Users/nonexistentpath
non esista.
Produzione:
Base directory: /Users/user
Directory moved: /Users/user2
Directory Users/nonexistentpath not found.
La prima chiamata al blocco changeDir()
è passata attraverso l’istruzione if
perché il percorso esiste. D’altra parte, il secondo passa attraverso l’else
e stampa un messaggio di errore perché il percorso non esiste.
Usa try...except
per verificare la presenza di errori
Se il comando os.chdir()
non trova il percorso del file, lancerà una notifica FileNotFoundError
. Per capirlo, dobbiamo avvolgere il codice attorno a un blocco try...except
.
import os
def changeDir(newPath):
try:
os.chdir(newPath)
print("Directory moved: newPath")
except OSError:
print("Directory ", newPath, "does not exist.")
print("Base directory: ", os.getcwd())
changeDir("/Users/user2")
changeDir("/Users/nonexistentpath")
Produzione:
Base directory: /Users/user
Directory moved: /Users/user2
Directory Users/nonexistentpath does not exist.
Più o meno, entrambi producono lo stesso output; tuttavia, usare la gestione delle eccezioni try...except
è molto più sicuro che usare un’istruzione if-else
. È perché le condizioni definite dall’utente potrebbero non coprire tutte le possibili eccezioni che potrebbero verificarsi nell’affrontare la manipolazione del percorso dei file.
In sintesi, il modulo os
fornisce un ampio supporto per la manipolazione di file e directory, tra le altre utilità che offre.
Possiamo cambiare direttamente la directory di lavoro usando il blocco os.chdir()
, ma sarebbe più sicuro avvolgerlo attorno ai blocchi if-else
o try...except
per evitare che si verifichino eccezioni.
Se vuoi esplorare di più sulla manipolazione dei file, la gestione delle eccezioni e l’aggiornamento dei nomi dei file o del contenuto sono incredibilmente importanti.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn