How do I raise a FileNotFoundError properly?

Viewed 83995

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?

1 Answers
Related