8 maneiras de verificar se existe um arquivo usando Python

A dependência do Python de arquivos externos é um aspecto crucial, é aconselhável prestar atenção aos arquivos base / fonte antes de executar qualquer código. Antes de executar um programa específico, você precisa garantir que seus arquivos de origem existam no local especificado.

Todo desenvolvedor entende a necessidade de criar códigos de fallback, que podem evitar que um prorgrama falhe no caso de uma condição não ser atendida. Em Python, existem várias maneiras de verificar se um arquivo existe; aqui estão os principais métodos que você deve conhecer.

1. Experimente e exceto as declarações

A instrução try e except verifica um comando e produz uma saída. No código a seguir, a instrução try tentará abrir um arquivo ( testfile.txt ). Se o processador do Python conseguir localizar o arquivo, ele abrirá o arquivo e imprimirá o resultado. O arquivo está aberto e disponível para uso .

 try:
f = open('testfile.txt')
print("File is available for use")
f.close()
except IOError:
print('File is not accessible')

Se encontrar um erro, ele imprimirá o resultado Arquivo não acessível . Uma vez que o código completo é compilado e executado, ele fechará o arquivo aberto se ele tiver sido aberto.

A dependência do Python de arquivos externos é um aspecto crucial, e você precisa prestar atenção aos arquivos base / fonte, antes de executar qualquer código.

Antes de executar um programa específico, certifique-se de que seus arquivos de origem existam no local específico.

2. Os.path.isfile (caminho)

Python tem um módulo de sistema operacional integrado que pode ser chamado para interagir com os arquivos, pastas e diretórios subjacentes. O método os.path.isfile () do Python pode ser usado para verificar um diretório e se um arquivo específico existe.

A primeira etapa é importar a função integrada usando a biblioteca import os.path . O próximo comando verifica se o arquivo existe no local específico.

 import os.path
os.path.isfile(r"C:UsersWini BhallaDesktopPython test file.txt")

A saída retorna True , pois o arquivo existe no local específico. Se o arquivo não existir, o Python retornará False .

3. Os.path.exists (caminho)

Por motivos semelhantes, a instrução import os library pode ser usada para verificar se o diretório existe em seu sistema.

A sintaxe é bastante simples:

 Import os.path
os.path.exists(r"C:UsersWini BhallaDesktoptest")

Assim como na etapa anterior, se o diretório / pasta for encontrado no caminho do sistema especificado, o Python retornará True e, subsequentemente, False , se o diretório / pasta não for encontrado.

Relacionado: Aprendendo Python? Veja como copiar um arquivo

4. Os.Path.Isdir (caminho)

Assim como os.path.isfile e os.path.exists () , os.path.isdir () é uma subfunção da biblioteca os. A única diferença aqui é que este comando só funciona para diretórios. Como esperado, o uso desta sintaxe retorna um valor booleano baseado na existência de diretórios.

Por exemplo:

 import os
os.path.isdir(r"C:UsersWini BhallaDesktopOS")

A saída é True , uma vez que a pasta / diretório existe no caminho especificado.

 import os
os.path.isdir(r"C:UsersWini BhallaDesktoptestdirectory")

A saída é False , pois a pasta / diretório não existe no caminho especificado.

5. Pathlib.path.exists ()

Python 3.4 e versões posteriores oferecem o módulo Pathlib , que pode ser importado usando a função de importação . Pathlib captura as funcionalidades necessárias em um lugar e as disponibiliza por meio de vários métodos para usar com o objeto de caminho.

Para usar o Pathlib:

 import pathlib
file = pathlib.Path(r"C:UsersWini BhallaDesktopPython test file.txt")
if file.exists ():
print ("File exists")
else:
print ("File does not exist")

De acordo com a existência do arquivo, a saída exibirá se o arquivo existe ou não no caminho especificado. Idealmente, o código na instrução de impressão pode ser alterado, de acordo com os requisitos do seu programa

6. Os.listdir (caminho)

O método listdir em Python retorna uma lista de todos os arquivos em um diretório específico, conforme especificado pelo usuário. No entanto, esse método não retornará nenhum arquivo existente nas subpastas.

O método listdir aceita apenas um parâmetro, o caminho do arquivo. O ideal é que o caminho do arquivo seja o nome do arquivo e da pasta que você deseja recuperar.

A sintaxe básica inclui:

 os.listdir(path)

No exemplo abaixo, você pode criar um loop para percorrer todos os arquivos listados no diretório e, em seguida, verificar a existência do arquivo especificado declarado com a instrução if .

 import os
path = r'C:UsersWini BhallaDesktop'
files = os.listdir(path)
print (files)

Este código imprimirá a lista de arquivos disponíveis no diretório atual.

 import os
path = r'C:UsersWini BhallaDesktop' files = os.listdir(path)
for f in files:
if f == "test.txt":
print("File exists")
else:
print("File does not exist")

Mais adiante, quando o loop for executado, a função listdir junto com a lógica da instrução if percorrerá a lista de arquivos e imprimirá os resultados, dependendo das condições passadas na instrução print .

Relacionado: Usar Loops com Listas em Python

7. Módulo Glob

O módulo glob combina todos os nomes de caminho com os parâmetros especificados e permite que você acesse o sistema de arquivos de forma sucinta. Como glob é usado para correspondência de padrões, você pode usá-lo para verificar o status de um arquivo.

Existem duas referências do caminho:

Se o arquivo for encontrado, o código retornará True , caso contrário, retornará False .

Um exemplo de uso de Glob:

 import glob
if glob.glob(r"C:UsersWini BhallaDesktoptest.txt"):
print ("File exist")
else:
print("File does not exist")

A saída deste código imprimirá o resultado, se o arquivo for encontrado.

8. Subprocesso

O comando de teste no módulo de subprocesso é uma maneira eficiente de testar a existência de arquivos e diretórios. Os comandos de teste funcionam apenas em máquinas com base em Unix e não em máquinas com sistema operacional Windows.

Você pode usar os seguintes comandos de acordo com suas necessidades:

  • test -e: Verifique a existência de um caminho
  • test -f: verifica a existência de um arquivo
  • test-d: Verifique a existência de uma pasta

Verificando um caminho com subprocesso:

 from subprocess import run
run(['test', '-e', 'testfile.txt']).returncode == 0
run(['test', '-e', 'im-not-here.txt']).returncode == 0

Este código chamou a função de teste seguida por '-e' para verificar a existência de um caminho. A função mostra False para um caminho inválido.

Verificando um arquivo com subprocesso:

 run(['test', '-f', 'testfile.txt']).returncode == 0
run(['test', '-f', 'testdirectory']).returncode == 0

A função '-f' testa a existência de um arquivo e retorna False para um diretório.

Verificando um diretório com subprocesso:

 run(['test', '-d', 'testfile.txt']).returncode == 0
run(['test', '-d', 'testdirectory']).returncode == 0

A função '-d' testa a existência de um diretório e retorna False para qualquer consulta de arquivo no comando test.

Qual comando você usará para localizar seus arquivos?

Python é uma linguagem relativamente fácil de usar e oferece muitas opções para os usuários finais. Para verificar a existência de um (s) arquivo (s), você pode usar qualquer um dos procedimentos listados acima.

No entanto, se você é um iniciante, sempre há maneiras de aprender Python. Como Python é uma linguagem vasta, é melhor gastar algum tempo entendendo as diferentes nuances e sua gama de comandos.