所以我有一個文件名列表。他們被稱爲:python正則表達式:將「frame_20」更改爲「frame_0020」的腳本
"fgmask_frame_20.jpg","fgmask_frame_40.jpg",..."fgmask_frame_2000.jpg" etc.
我想要做的就是讓所有的數字4位數的,所以,如果是frame_20
然後使它frame_0020
,而frame_0200
代替frame_200
等
如何我可以在Python中執行此操作嗎?
所以我有一個文件名列表。他們被稱爲:python正則表達式:將「frame_20」更改爲「frame_0020」的腳本
"fgmask_frame_20.jpg","fgmask_frame_40.jpg",..."fgmask_frame_2000.jpg" etc.
我想要做的就是讓所有的數字4位數的,所以,如果是frame_20
然後使它frame_0020
,而frame_0200
代替frame_200
等
如何我可以在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']
感謝您的答案。你在哪部分代碼中指定要在非4位數字之前添加零? – brainless
'{:04}'將數字格式化爲至少包含4個字符的字符串,0表示用零填充。 –
你得給一個嘗試.... –
我投票結束這個問題作爲題外話,因爲這既不是一個代碼寫作,也不是教程服務 – jonrsharpe
@IronFist我做了..但我不認爲當你問問題時你需要給出你嘗試的證明?我不認爲發佈我的嚴重企圖代碼將幫助任何人理解這個問題.. – brainless