我已經寫了這個函數,它輸出以下類型的幀序列的範圍。獲取序列的範圍
frme.info.03.bmp
frme01_0040.bmp
frme01_0042.bmp
frme01_0043.bmp
frme02_0044.bmp
frme02_0045.bmp
frme02_0046.bmp
frme02_0047.bmp
frme03_0652.raw
frme03_0653.raw
frme03_0654.raw
frme03_0656.raw
frme03_0659.raw
frme1.45.dat
frme2.45.dat
frme3.45.dat
frme4.45.dat
和功能我寫的是:
def getRange(self, sequence, sep="_"):
frameNumbers = []
for item in sequence:
frameNumbers.append(int(os.path.splitext(item)[0].split(sep)[-1]))
return FrameRange(frameNumbers)
但是這給了錯誤:ValueError: invalid literal for int() with base 10: 'pe67'
,如果我有這種類型的幀序列:
pe67.0140
pe67.0141
我應該如何處理上述所有情況?
使用正則表達式? –
那也可以吧 –
檢查擴展是否是原始代碼之前的數字 –