Python:如果找不到文件,请尝试查找不同的文件名

Tri*_*ard 4 python file

问题:

我有代码查找文件并打开它.默认情况下,它会查找以#######(每个#为数字)开头的文件.

问题有时是文件名##-#####和其他时间#####.

我想要一种方法,如果找不到文件尝试寻找文件可以写入的另外两种方式.

找不到文件时发生IOError异常.我在想的是有一个除了声明说:

except File2:
    Look for ##### in  myfindFileFunction()
    if file is still not found run except File3
except File3:
    Look for ##-#### in myfindFileFuction()
except:
    print "File not found"
Run Code Online (Sandbox Code Playgroud)

我不确定如何设置自定义异常以这种方式工作,和/或如果有一个更pythonic的方式完全这样做...

设置一个模式或三个可能的文件名并迭代思考,直到找到文件更好?

pca*_*cao 5

使用try/except确实是一种非常pythonic(和快速)的做事方式.

你不仅要权衡它是否是pythonic,而是这种方法在可读性方面有什么影响.当您在6个月内再次查看代码时,您是否仍会快速理解代码?别人会吗?

我通常会确保处理这类事情的稍微复杂的try/except子句得到很好的评论.除此之外......这是一种非常合理的方式.

另外,为了让你放松一下性能,当一个人在两种方法之间做出决定时,这是一个常见的问题,看看这里:Python如果vs try-except你会发现try/except结构在Python中很快...真的很快