Python匹配模式重命名文件

时间:2017-09-18 13:14:52

标签: python regex python-2.7 file-rename

我有几个这样的文件,llm_rc_v3212.xml, llm_ds_v3232.xml。 名字可以是任何东西。但是,常用参数为_v3212。我想匹配这个数字并替换它(理想情况下重命名文件)。

我如何将这种模式与正则表达式相匹配?我正在尝试使用re.sub,但还不知道。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

这是一个工作示例。请注意,根据其他文件名,可能需要更改正则表达式。

import re

FILENAME_VERSION_REGEX = re.compile(r'_v(\d)+')


def rename(filename, replacement):
    full_replacement = r'_v{}'.format(replacement)
    new_filename = FILENAME_VERSION_REGEX.sub(full_replacement, filename)
    return new_filename

使用您提供的文件名进行测试:

>>> rename('llm_rc_v3212.xml', 1)
'llm_rc_v1.xml'

>>> rename('llm_ds_v3232.xml', 2)
'llm_ds_v2.xml'

>>> rename('llm_v232_uc.xml', 3)
'llm_v3_uc.xml'