Я использую стороннюю библиотеку, которая прекрасна, но не обрабатывает неубедительные файлы так, как мне хотелось бы. Когда придав ему несуществующий файл, вместо того, чтобы поднять старый добрыйКак правильно создать файл FileNotFoundError?
FileNotFoundError: [Errno 2] No such file or directory: 'nothing.txt'
это вызывает какое-то непонятное сообщение:
OSError: Syntax error in file None (line 1)
Я не хочу, чтобы обрабатывать отсутствующий файл, не хотим улавливать или обрабатывать исключение, не хотят создавать настраиваемое исключение, ни хочу, чтобы я был open
файла, или не создавал его, если он не существует.
Я только хочу проверить его существует (os.path.isfile(filename)
будет делать трюк), а если нет, то просто поднимите правильный FileNotFoundError.
Я попытался это:
#!/usr/bin/env python3
import os
if not os.path.isfile("nothing.txt"):
raise FileNotFoundError
какие только выходы:
Traceback (most recent call last):
File "./test_script.py", line 6, in <module>
raise FileNotFoundError
FileNotFoundError
Это лучше, чем «Синтаксическая ошибка в файле None», но как можно поднять «реальный» исключение python с правильным сообщением, без необходимости его переопределения?
Отлично! Я так старался найти правильный способ написать это. – zezollo
@zezollo: Я обновил ответ; Я нашел 'os.strerror()' now (я * знал *, было где-то сопоставление от номера ошибки до строкового сообщения). –