2017-08-27 5 views
-2

pythonを使用してファイル名からバージョン番号を取得するクリーンな方法は何でしょうか? python intとしてファイル名からバージョン番号を解析する

'Z:\\projects\\TEST\\assets\\TEST_PRP_Book\\tasks\\mdl\\TEST_PRP_Book_mdl_v021.max' 

と私は、ファイルが0を返すと誤っイム罰金を命名されている場合、フェールセーフとして

21 

のようなint型の値として、バージョン番号を取得したい:例えば私はファイルパスそうのように持っていると言います

答えて

1

最も簡単なことは、"\\d+"(任意の桁数)のようなものに、おそらくregex searchを使用して、ファイル名に他の数字が含まれていないと仮定します。それ以外の場合は、エッジケースに対してより複雑な正規表現パターンを記述する必要があります。

Pythonのint()は先行ゼロをうまく処理しているようですので、あなたはその正規表現をラップして、それらについて心配する必要はありません。

+0

私は個人的に、私はストレートのpythonで行うことができれば正規表現を避けるようにしてください。この場合、rfind()とsubstringはうまく動作します。 – Spencer

0

あなたが命名規則は、常に「_v ##」であることがわかっている場合は、この仕事はあなたのためになります。

import os 

def returnVersionNumber(file): 
    fileName, ext = os.path.splitext(file) 
    versionDelimiter = fileName.rfind("_v") 

    if versionDelimiter == -1: 
     return 0 
    else: 
     return int(fileName[versionDelimiter + 2:]) 


print returnVersionNumber('Z:\\projects\\TEST\\assets\\TEST_PRP_Book\\tasks\\mdl\\TEST_PRP_Book_mdl_v021.max') 
関連する問題