I have search high and low on he net for answers to this question. Perhaps it is simply a bit too specific, but here goes.
I am working through a crash course text on Python, and probably would be considered either an advanced beginner or a beginning intermediate practitioner at this point.
I am trying to use a try-catch block to display a message about a missing file, using an exception with the FileNotFoundError exception type, as follows:
filename_1 = 'cats.txt'
filename_2 = 'dogs.txt'
try:
with open(filename_1) as file_obj:
contents = file_obj.read()
contents = contents.split('\n')
print('\n\tContents of File \'cats.txt\':\n')
for line in contents:
print('\t', line)
print('\n')
with open(filename_2) as file_obj:
contents = file_obj.read()
contents = contents.split('\n')
print('\n\tContents of File \'dogs.txt\':\n')
for line in contents:
print('\t', line)
print('\n')
except FileNotFoundError:
print('\n\tSorry, \'', FileNotFoundError.__filename__, '\' not found.\n')
I tried using an attribute name of filename, which obviously does not exist. But I have been able to find no appropriate attributes from which to extract this vital data for the error. As there are two different filenames specified, it could be either of those files that are not present.
Does Python provide this kind of functionality in its built-in exceptions? It would seem that it should.
Any help is greatly appreciated. Thanks.
Sincerely,
Robert Hieger
The Python FileNotFoundError: [Errno 2] No such file or directory error is often raised by the os library. This error tells you that you are trying to access a file or folder that does not exist. To fix this error, check that you are referring to the right file or folder in your program.
The Python "FileNotFoundError: [Errno 2] No such file or directory" occurs when we try to open a file that doesn't exist in the specified location. To solve the error, move the file to the directory where the Python script is located if using a local path, or use an absolute path.
In some cases, this error could be shown when the path of the specified file or folders exceeds 258 characters in length. The way to solve this is to reduce the length of the full path to the items specified, either by moving or renaming the file(s) and/or containing folders.
You can find the filename from the exception instance (not from the class).
try:
# your code opening files, etc.
# ...
except FileNotFoundError as not_found:
print(not_found.filename)
This attribute is documented at the parent of FileNotFoundError
, OSError
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With