Estou escrevendo um script que faz algo em um arquivo de texto (o que ele faz é irrelevante para a minha pergunta). Portanto, antes de fazer algo no arquivo, quero verificar se o arquivo existe. Eu posso fazer isso, não há problema, mas a questão é mais a estética.
Aqui está o meu código, implementando a mesma coisa de duas maneiras diferentes.
def modify_file(filename):
assert os.path.isfile(filename), 'file does NOT exist.'
Traceback (most recent call last):
File "clean_files.py", line 15, in <module>
print(clean_file('tes3t.txt'))
File "clean_files.py", line 8, in clean_file
assert os.path.isfile(filename), 'file does NOT exist.'
AssertionError: file does NOT exist.
ou:
def modify_file(filename):
if not os.path.isfile(filename):
return 'file does NOT exist.'
file does NOT exist.
O primeiro método produz uma saída que é principalmente trivial, a única coisa que me interessa é que o arquivo não exista.
O segundo método retorna uma string, é simples.
Minhas perguntas são: qual método é melhor para informar ao usuário que o arquivo não existe? Usar o assert
método parece de alguma forma mais pitônico.