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…
1from pathlib import Path
2
3fileName = "c:\temp\file.txt"
4file = Path(fileName)
5isFile = 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:
1import os
2
3base_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…
1def checkFile(file):
2 pFile = Path(file)
3 isFile = pFile.is_file()
4 if(not isFile):
5 BASE_DIR = os.path.dirname(os.path.realpath(__file__))
6 pFile = Path(BASE_DIR +"\\" + file)
7 isFile = pFile.is_file()
8
9 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: