I use a third-party library that's fine but does not handle inexistant files the way I would like. When giving it a non-existant file, instead of raising the good old
FileNotFoundError: [Errno 2] No such file or directory: 'nothing.txt'
it raises some obscure message:
OSError: Syntax error in file None (line 1)
I don't want to handle the missing file, don't want to catch nor handle the exception, don't want to raise a custom exception, neither want I to open
the file, nor to create it if it does not exist.
I only want to check it exists (os.path.isfile(filename)
will do the trick) and if not, then just raise a proper FileNotFoundError.
I tried this:
#!/usr/bin/env python3
import os
if not os.path.isfile("nothing.txt"):
raise FileNotFoundError
what only outputs:
Traceback (most recent call last):
File "./test_script.py", line 6, in <module>
raise FileNotFoundError
FileNotFoundError
This is better than a "Syntax error in file None", but how is it possible to raise the "real" python exception with the proper message, without having to reimplement it?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…