在python中按顺序重命名文件

时间:2017-07-24 17:12:59

标签: python directory file-rename

您好我试图在(test.jpeg,test1.jpeg,test2.jpeg等...)目录中重命名我的文件(People-000,People-001,People-002等。 。)

但我还没有找到一个在网上任何地方做到这一点的好方法。 我对python有点新意,但如果我弄清楚它会非常有用。

1 个答案:

答案 0 :(得分:2)

如果您不介意新旧名称之间的对应关系:

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)

使用正则表达式而不是字符串索引的优点是文件名长度无关紧要。