共通のロジックを持たないファイル名からいくつかの数値を解析する必要があります。「試してみれば許される」というPythonの方法、またはtry-except構造を使用したい。ここで、2 つ以上のケースを追加する必要があります。これを行う正しい方法は何ですか?私は今、入れ子になったtryか、try-except-pass、try-except-passのどちらかを考えています... どちらが良いですか、それとも何か他のものですか? おそらくファクトリーメソッド(どのように?)?
これは、より多くのケースがあるため、将来的に簡単に拡張できる必要があります。
以下は私が望むものです(試行ごとに1つの例外しか存在できないため、機能しません):
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
...