Utilizando Python para verificar se um arquivo existe
Overview
Neste post, mergulharemos no universo Python para desvendar uma tarefa cotidiana que, apesar de simples, esconde seus detalhes peculiares: verificar se um arquivo existe. Vamos explorar uma abordagem direta, entender suas limitações e, em seguida, aprimorar nossa técnica utilizando caminhos relativos e um pseudo-retry pattern. Este guia é perfeito para quem está dando os primeiros passos em Python ou para aqueles que desejam aprimorar suas habilidades de manipulação de arquivos.
Verificar se um arquivo existe ou não é uma tarefa extremamente fácil de ser feita em Python, mas existem alguns detalhes… Abaixo está uma das abordagens possíveis.
O script abaixo verificar se um arquivo existe…
from pathlib import Path
fileName = "c:\temp\file.txt"
file = Path(fileName)
isFile = file.is_file()
A variável isFile será receberá o valor True se o arquivo existir ou False se não existir. O problema desta abordagem é que, se você não passar o caminho completo do arquivo (exemplo: fileName = “file.txt”, ele vai retornar false, mesmo se o arquivo existir.
Para utilizar o caminho relativo, podemos pegar o diretório onde o script está sendo executado:
import os
base_dir = os.path.dirname(os.path.realpath(__file__))
A variável __file__ existe no Python e possui a referência para o arquivo que está sendo executado.
Se unirmos as duas abordagens, podemos implementar um pseudo-retry pattern…
def checkFile(file):
pFile = Path(file)
isFile = pFile.is_file()
if(not isFile):
BASE_DIR = os.path.dirname(os.path.realpath(__file__))
pFile = Path(BASE_DIR +"\\" + file)
isFile = pFile.is_file()
return isFile
A função acima tentará verificar se o arquivo passado via argumento existe. Se não existir, ele concatena o caminho para o script atual com o nome do arquivo e tenta novamente.
Referência: