我必须从没有共同逻辑的文件名中解析一些数字。我想使用python的“尝试,你会被原谅”的方式,或者try-except结构。现在我必须添加两个以上的案例。这样做的正确方法是什么?我现在正在考虑嵌套尝试或尝试除通,尝试除通,...哪个更好还是别的什么?工厂方法也许(如何?)?
这必须在未来很容易扩展,因为会有更多的案例。
以下是我想要的(不起作用,因为每次尝试只能存在一个例外):
try:
# first try
imNo = int(imBN.split('S0001')[-1].replace('.tif',''))
except:
# second try
imNo = int(imBN.split('S0001')[-1].replace('.tiff',''))
except:
# final try
imNo = int(imBN.split('_0_')[-1].replace('.tif',''))
编辑:
哇,感谢您的回答,但请不要进行模式匹配。我的错,把“一些共同的逻辑”放在开头(现在改为“没有共同的逻辑”,对此感到抱歉)。在上述情况下,模式非常相似......让我添加一些完全不同的东西来说明这一点。
except:
if imBN.find('first') > 0: imNo = 1
if imBN.find('second') > 0: imNo = 2
if imBN.find('third') > 0: imNo = 3
...