0
嗨,我試圖從(test.jpeg,test1.jpeg,test2.jpeg等...)(People-000,People-001,People-002等等......)在python中重新命名文件
但我還沒有找到一個很好的方法在網上任何地方做到這一點。 我有點新來python,但如果我想通了這將是非常有用的。
嗨,我試圖從(test.jpeg,test1.jpeg,test2.jpeg等...)(People-000,People-001,People-002等等......)在python中重新命名文件
但我還沒有找到一個很好的方法在網上任何地方做到這一點。 我有點新來python,但如果我想通了這將是非常有用的。
如果你不介意的新舊名稱的對應關係:
:import os
_src = "/path/to/directory/"
_ext = ".jpeg"
for i,filename in enumerate(os.listdir(_src)):
if filename.endswith(_ext):
os.rename(filename, _src+'People-' + str(i).zfill(3)+_ext)
但如果它是結束舊的和新的文件名的數量對應,您可以使用正則表達式是非常重要的
import re
import os
_src = "/path/to/directory/"
_ext = ".jpeg"
endsWithNumber = re.compile(r'(\d+)'+(re.escape(_ext))+'$')
for filename in os.listdir(_src):
m = endsWithNumber.search(filename)
if m:
os.rename(filename, _src+'People-' + str(m.group(1)).zfill(3)+_ext)
else:
os.rename(filename, _src+'People-' + str(0).zfill(3)+_ext)
使用正則表達式而不是字符串索引的優點是,文件名長度無關緊要。
謝謝,這是我實際可以理解的序列編號的第一個版本。 – Asori12
https://stackoverflow.com/questions/2759067/rename-files-in-python 即使用os.rename(src,dst) – anugrah
你有什麼試過?顯示代碼。對於絕大多數問題,如果你沒有包含顯示你所嘗試的代碼,那麼你的問題是不完整的,需要更多的工作。 – Jacobr365
我相信這裏已經有了答案。檢查下面: –
Ankit