Piszę skrypt, który robi coś z plikiem tekstowym (to, co robi, nie ma znaczenia dla mojego pytania). Więc zanim zrobię coś z plikiem, chcę sprawdzić, czy plik istnieje. Mogę to zrobić, nie ma problemu, ale chodzi bardziej o estetykę.
Oto mój kod, implementujący to samo na dwa różne sposoby.
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.
lub:
def modify_file(filename):
if not os.path.isfile(filename):
return 'file does NOT exist.'
file does NOT exist.
Pierwsza metoda generuje dane wyjściowe, które są w większości trywialne, jedyne, na czym mi zależy, to że plik nie istnieje.
Druga metoda zwraca ciąg znaków, jest to proste.
Moje pytania brzmią: która metoda jest lepsza, aby poinformować użytkownika, że plik nie istnieje? Zastosowanie tej assert
metody wydaje się w jakiś sposób bardziej pytoniczne.