2015-12-04 38 views
-4

所以我有一個文件名列表。他們被稱爲: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中執行此操作嗎?

+0

你得給一個嘗試.... –

+2

我投票結束這個問題作爲題外話,因爲這既不是一個代碼寫作,也不是教程服務 – jonrsharpe

+0

@IronFist我做了..但我不認爲當你問問題時你需要給出你嘗試的證明?我不認爲發佈我的嚴重企圖代碼將幫助任何人理解這個問題.. – brainless

回答

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

感謝您的答案。你在哪部分代碼中指定要在非4位數字之前添加零? – brainless

+0

'{:04}'將數字格式化爲至少包含4個字符的字符串,0表示用零填充。 –

相關問題