Utilizando Python para verificar se um arquivo existe

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:

Traduções: