Python – Como verificar se um arquivo existe

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:

 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:

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.

import os.path
 os.path.isfile(file_path)

Abaixo, há um comparativo entre as duas funções, mostrando a diferença entre elas:

 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

try:
 with open('file_name', 'r') as f:
 use_file(f)
 except IOError:
 print 'File does not exist!'

Esta função tenta abrir o arquivo somente para leitura (o ‘r’ depois do nome do arquivo). Caso o arquivo não exista, ela retorna a mensagem de erro. Quando usar esta solução, lembre-se que existem outros erros possíveis, como permissão de leitura, que você deve analisar antes declarar que o arquivo não existe.

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

Object orientation and UML

Também pode seguir alguns dos nossos broadcasters que programam em Python, como os abaixo:

taddeimania

 

nchafni

 

Outra maneira legal de descobrir mais coisas interessantes sobre Python é acessar nossa página de projetos

Dr. Michael J. Garbade

I, Dr. Michael J. Garbade is the co-founder of the Education Ecosystem (aka LiveEdu), ex-Amazon, GE, Rebate Networks, Y-combinator. Python, Django, and DevOps Engineer. Serial Entrepreneur. Experienced in raising venture funding. I speak English and German as mother tongues. I have a Masters in Business Administration and Physics, and a Ph.D. in Venture Capital Financing. Currently, I am the Project Lead on the community project -Nationalcoronalvirus Hotline I write subject matter expert technical and business articles in leading blogs like Opensource.com, Dzone.com, Cybrary, Businessinsider, Entrepreneur.com, TechinAsia, Coindesk, and Cointelegraph. I am a frequent speaker and panelist at tech and blockchain conferences around the globe. I serve as a start-up mentor at Axel Springer Accelerator, NY Edtech Accelerator, Seedstars, and Learnlaunch Accelerator. I love hackathons and often serve as a technical judge on hackathon panels.

Recent Posts

Blockchain in Elections: A Leap Toward Transparent Democracy

In 2024 we're witnessing a critical point in democratic technology: the integration of blockchain and…

3 weeks ago

Win Big with Our Amazon Fire Max 11 & AirPods Pro Giveaway!

We’re thrilled to announce an exciting opportunity for you to win not one but two…

2 months ago

Unleashing Potential: How Education Ecosystem Transforms Learning into Real-World Success

Acquiring practical skills is crucial for career advancement and personal growth. Education Ecosystem stands out…

4 months ago

The Role of Artificial Intelligence in Modern Software Development

Artificial Intelligence (AI) has been making significant strides in various industries, and the software development…

7 months ago

Highest Stable Coin Yields – (W16 – 2024)

Another week to bring you the top yield platforms for three of the most prominent…

8 months ago

LEDU Token OTC Trading

If you hold a large volume of LEDU tokens above 1 million units and wish…

9 months ago