Como saber se um arquivo existe utilizando o Python? Para responder esta pergunta, precisamos saber como esta linguagem de programação “enxerga” os arquivos.
Acessando um arquivo no Python
Para que seu programa tenha acesso a todos os arquivos do computador é necessário importar o módulo os, que traz informações sobre o sistema operacional. Estamos mais interessados, especificamente, na árvore do diretório de arquivos, acessada por os.path. Este comando, então, fica assim:
1 |
import os.path |
Este comando permitirá que você acesse o arquivo que deseja. Então, podemos prosseguir a verificação usando uma das opções abaixo:
Usando a função os.path.exists
Quando você quer saber se um arquivo existe, pode utilizar a função os.path.exists. Um código utilizando esta função fica desse jeito:
1 2 |
import os.path os.path.exists(file_path) |
Este código tem como retorno “Verdadeiro” ou “Falso”. Entretanto, ele também retorna verdadeiro para diretórios, além de arquivos.
Usando a função os.path.isfile
Esta função verifica se o caminho declarado realmente é um arquivo, e não um diretório.
1 2 |
import os.path os.path.isfile(file_path) |
Abaixo, há um comparativo entre as duas funções, mostrando a diferença entre elas:
1 2 3 4 5 6 7 8 9 10 11 12 |
print os.path.isfile("/bla/blebli") True print os.path.isfile("/bla") False print os.path.isfile("/we/have/a_problem") False print os.path.exists("/bla/blebli") True print os.path.exists("/bla") True print os.path.exists("/we/have/a_problem") False |
As funções anteriores somente verificam se o arquivo existe. E se depois desta verificação o arquivo for excluído ou criado por outra função? Isto pode gerar um problema de segurança em seu programa, conhecido como “race condition”. Há, portanto, uma maneira mais segura, utilizando a opção abaixo:
Usando try/except
1 2 3 4 5 |
try: with open('file_name', 'r') as f: use_file(f) except IOError: print 'File does not exist!' |
Você conhece outras formas diferentes de checar se um arquivo existe no Python? Compartilhe na área de comentários abaixo.
Agora que você viu estas alternativas de resposta para esta pergunta, que tal explorar mais? Você pode conferir em nosso site vídeos sobre Python. Abaixo estão alguns exemplos:
• Pokemon Trading Market Place
Também pode seguir alguns dos nossos broadcasters que programam em Python, como os abaixo:
Outra maneira legal de descobrir mais coisas interessantes sobre Python é acessar nossa página de projetos