Alterar directório de trabalho em Python
Este artigo discute como se pode mudar o directório de trabalho actual de Python para outro local.
Utilize o módulo os
para mudar de directório em Python
Suponha, por alguma razão, que pretende alterar o seu directório de trabalho via Python em vez da consola de comando. Nesse caso, o módulo os
fornece ferramentas para utilitários diversos do sistema operativo directamente através de Python.
import os
Digamos que está actualmente num directório de trabalho em /Users/user
e quer mudar para Users/user2
: primeiro, verifique o directório de trabalho actual, imprimindo o resultado de os.getcwd()
. A seguir, chamar o bloco os.chdir("Users/user2")
para mudar o directório de trabalho actual.
print(os.getcwd())
os.chdir("/Users/user2")
print(os.getcwd())
Resultado:
/Users/user
/Users/user2
Verifica que o seu programa mudou com sucesso os directórios de trabalho de user
para user2
.
Verificação de Exceções
O caminho é introduzido pelo utilizador, pelo que os erros de introdução são muito prováveis. Por exemplo, o utilizador insere um caminho inexistente; esta função será provavelmente muito propensa a excepções FileNotFound. Dado isto, devemos implementar a verificação de excepções.
Utilizar if-else
para verificar a existência de erros
A forma simples de o fazer é verificar se o caminho especificado existe, utilizando 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")
Vamos supor que /Users/user2
é um caminho de ficheiro existente, e que /Users/nonexistentpath
não existe.
Resultado:
Base directory: /Users/user
Directory moved: /Users/user2
Directory Users/nonexistentpath not found.
A primeira chamada para o bloco changeDir()
passou pela declaração if
porque o caminho existe. Por outro lado, a segunda passa pela instrução else
e imprime uma mensagem de erro, porque o caminho não existe.
Utilize try...except
para verificar a existência de erros
Se o comando os.chdir()
não encontrar o caminho do ficheiro, lançará uma notificação de FileNotFoundError
. Para apanhar isto, precisamos de enrolar o código em torno de um bloco 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")
Resultado:
Base directory: /Users/user
Directory moved: /Users/user2
Directory Users/nonexistentpath does not exist.
Mais ou menos, ambos produzem a mesma saída; contudo, utilizando o tratamento de excepções try...except
é muito mais seguro do que utilizar uma declaração if-else
. É porque as condições definidas pelo utilizador podem não cobrir todas as possíveis excepções que possam ocorrer no tratamento da manipulação do caminho do ficheiro.
Em resumo, o módulo os
fornece um amplo apoio à manipulação de ficheiros e directórios, entre as outras utilidades que oferece.
Podemos alterar directamente o directório de trabalho utilizando o bloco os.chdir()
, mas seria mais seguro envolvê-lo em blocos if-else
ou try...except
para evitar excepções.
Se quiser explorar mais sobre manipulação de ficheiros, o tratamento de excepções e a actualização de nomes de ficheiros ou conteúdos são incrivelmente importantes.
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