python正则表达式:要更改的脚本;框架“U 20”;至;框架“U 0020”;

python正则表达式:要更改的脚本;框架“U 20”;至;框架“U 0020”;,python,regex,Python,Regex,所以我有一个文件名列表。它们被称为: "fgmask_frame_20.jpg","fgmask_frame_40.jpg",..."fgmask_frame_2000.jpg" etc. 我想做的是把所有的数字都设为4位,这样如果它是frame\u20,那么就把它设为frame\u0020,而不是frame\u200等等 在Python中如何执行此操作?您可以使用正则表达式,如下所示: import re file_names = ["fgmask_frame_20.jpg", "fgma

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

"fgmask_frame_20.jpg","fgmask_frame_40.jpg",..."fgmask_frame_2000.jpg" etc.
我想做的是把所有的数字都设为4位,这样如果它是
frame\u20
,那么就把它设为
frame\u0020
,而不是
frame\u200
等等


在Python中如何执行此操作?

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

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']

你必须试一试……我投票决定以离题的方式结束这个问题,因为这既不是代码编写,也不是教程service@IronFist是的。。但我不认为当你问问题时,你需要证明你试过了吗?我不认为发布我的错误代码可以帮助任何人理解这个问题。你会从错误中吸取教训…这就是我的观点…谢谢你的回答。您在代码的哪个部分指定在非4位数字之前添加零?
{:04}
将数字格式化为至少包含4个字符的字符串,0表示用零填充。