如何使用Python FileNotFoundError打印丢失文件的名称?

Rob*_*ger 4 python types exception built-in

我在网上搜索高低,以寻找这个问题的答案.也许它只是有点过于具体,但这里也是如此.

我正在编写关于Python的速成课程文本,并且可能在此时被认为是高级初学者或初级中级从业者.

我正在尝试使用try-catch块来显示有关丢失文件的消息,使用FileNotFoundError异常类型的异常,如下所示:

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')
Run Code Online (Sandbox Code Playgroud)

我尝试使用filename的属性名称,这显然不存在.但是我找不到适当的属性来从中提取错误的重要数据.由于指定了两个不同的文件名,因此它可能是那些不存在的文件.

Python是否在其内置异常中提供此类功能?它似乎应该.

任何帮助是极大的赞赏.谢谢.

此致

罗伯特·希格

小智 7

您可以从异常实例(而不是类)中找到文件名.

try:
    # your code opening files, etc.
    # ...
except FileNotFoundError as not_found:
    print(not_found.filename)
Run Code Online (Sandbox Code Playgroud)

  • 您是否找到了“.filename”存在的文档? (2认同)