Я использую стороннюю библиотеку, которая отлично подходит, но не обрабатывает неубедительные файлы так, как мне хотелось бы. Когда вы даете ему несуществующий файл, вместо того, чтобы поднимать старый добрый
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 с правильным сообщением, не переустраивая его?