python正则表达式:要更改的脚本" frame_20"到" frame_0020"

时间:2015-12-04 09:08:04

标签: python regex

所以我有一个文件名列表。他们被称为:

"fgmask_frame_20.jpg","fgmask_frame_40.jpg",..."fgmask_frame_2000.jpg" etc.

我想要做的是将所有数字设为4位,如果是frame_20,则将其设为frame_0020,将frame_0200代替frame_200等等。

我怎样才能在Python中执行此操作?

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式,如下所示:

import re

file_names = ["fgmask_frame_20.jpg", "fgmask_frame_40.jpg", "fgmask_frame_2000.jpg"]
file_names = [re.sub(r'(.*?_)(\d+)(\.jpg)', lambda x: '{}{:04}{}'.format(x.group(1), int(x.group(2)), x.group(3)), file_name) for file_name in file_names]
print file_names

这会给你以下输出:

['fgmask_frame_0020.jpg', 'fgmask_frame_0040.jpg', 'fgmask_frame_2000.jpg']