将文件名中的版本号解析为 Python int



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

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

我想获取版本号作为整数值,例如

21

作为故障保险,如果文件命名不正确,我可以返回 0

最简单的方法可能是使用正则表达式搜索类似"\d+"(任意数量的数字(,假设您的文件名不包含其他数字。否则,您需要为边缘情况编写更复杂的正则表达式模式。

Python 的 int(( 似乎可以很好地处理前导零,所以你可以把你的正则表达式包装在其中,避免担心它们。

如果您知道命名约定始终为"_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')

最新更新