簡體   English   中英

在python中按順序重命名文件

[英]Rename files sequentially in python

嗨,我正在嘗試重命名目錄中的文件(test.jpeg,test1.jpeg,test2.jpeg等...)(People-000,People-001,People-002等...)

但我還沒有找到一個在網上任何地方做到這一點的好方法。 我是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)

使用正則表達式而不是字符串索引的優點是文件名長度無關緊要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM