问题:
我有代码查找文件并打开它.默认情况下,它会查找以#######(每个#为数字)开头的文件.
问题有时是文件名##-#####和其他时间#####.
我想要一种方法,如果找不到文件尝试寻找文件可以写入的另外两种方式.
找不到文件时发生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的方式完全这样做...
设置一个模式或三个可能的文件名并迭代思考,直到找到文件更好?
使用try/except确实是一种非常pythonic(和快速)的做事方式.
你不仅要权衡它是否是pythonic,而是这种方法在可读性方面有什么影响.当您在6个月内再次查看代码时,您是否仍会快速理解代码?别人会吗?
我通常会确保处理这类事情的稍微复杂的try/except子句得到很好的评论.除此之外......这是一种非常合理的方式.
另外,为了让你放松一下性能,当一个人在两种方法之间做出决定时,这是一个常见的问题,看看这里:Python如果vs try-except你会发现try/except结构在Python中很快...真的很快