2017-08-27 35 views
-2

什麼是使用python從文件名獲取版本號的乾淨方式。例如說我有文件路徑,像這樣:從文件名解析版本號爲python int

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

,我希望得到的版本號爲像

21 

int值作爲故障安全的,如果該文件被命名爲返回0,錯誤我沒事

回答

1

最簡單的做法可能就是使用regex search,如"\\d+"(任意數字的數字),假定您的文件名不包含其他數字。否則,您需要爲邊緣案例編寫更復雜的正則表達式模式。

Python的int()似乎處理前導零很好,所以你可以包裝你的正則表達式,並避免擔心它們。

+0

我個人儘量避免正則表達式,如果我能直蟒蛇做。在這種情況下,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')