从文件名解析版本号为python int

时间:2017-08-27 18:09:18

标签: python

使用python从文件名中获取版本号的简洁方法是什么?例如,假设我有像这样的文件路径:

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

我希望将版本号作为像

这样的int值
21

作为故障保护,如果文件命名错误,则返回0

2 个答案:

答案 0 :(得分:1)

最容易做的事情可能只是使用regex search来表示"\\d+"(任意数量的数字),假设您的文件名不包含其他数字。否则,您需要为边缘情况编写更复杂的正则表达式模式。

Python' int()似乎正好处理前导零,所以你可以将你的正则表达式包装起来并避免担心它们。

答案 1 :(得分: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')