Używam biblioteki innej firmy, która jest w porządku, ale nie obsługuje plików niesortowanych tak, jak bym chciał. Kiedy nadając jej nieistniejąca plik, zamiast podnoszenia stare dobreJak poprawnie utworzyć właściwość FileNotFoundError?
FileNotFoundError: [Errno 2] No such file or directory: 'nothing.txt'
podnosi jakieś niejasne wiadomość:
OSError: Syntax error in file None (line 1)
nie chcę obsłużyć brakujący plik, nie chcą aby przechwycić wyjątek, nie należy go podnosić, nie chcę go ani open
, ani go tworzyć, jeśli nie istnieje.
Chcę tylko sprawdzić, czy istnieje (w przeciwnym wypadku wystarczy podnieść właściwość FileNotFoundError).
Próbowałem to:
#!/usr/bin/env python3
import os
if not os.path.isfile("nothing.txt"):
raise FileNotFoundError
jakie tylko wyjścia:
Traceback (most recent call last):
File "./test_script.py", line 6, in <module>
raise FileNotFoundError
FileNotFoundError
To jest lepsze niż „błąd składni w pliku None”, ale jak to jest możliwe, aby podnieść „prawdziwy” wyjątek Pythona z odpowiednim komunikatem, bez konieczności ponownego wdrożenia go?
Perfect! Tak bardzo starałem się znaleźć właściwą drogę pisania tego. – zezollo
@zezollo: zaktualizowałem odpowiedź; Znalazłem 'os.strerror()' teraz (ja * wiedziałem * było mapowanie od numeru błędu do smsa gdzieś). –