Python 重命名文件的匹配模式

Python match pattern to rename file

我有几个这样的文件,llm_rc_v3212.xml, llm_ds_v3232.xml。 名字可以是任何东西。然而,公共参数将是_v3212。我想匹配这个数字并替换它(最好重命名文件)。

如何将此模式与正则表达式匹配?我正在尝试使用 re.sub,但还无法计算。

如有任何帮助,我们将不胜感激。

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

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'