如何在python中用正则表达式批量修改文件名

 我来答
weiliming002
2016-06-19 · TA获得超过119个赞
知道小有建树答主
回答量:70
采纳率:100%
帮助的人:48.2万
展开全部
import re
import os

def get_file_list(folder):
    file_list = []; 
    for root, dirs, files in os.walk(folder):
        for f in files:
            path=root+os.path.sep+f
            file_list.append(path)
    return file_list

def get_re_file_list(file_list,re_rule):
    file_list_re=[]
    for file in file_list:
        if re.search(re_rule,file):
            file_list_re.append(file)
    return file_list_re

def rename2new_file_list(file_list_re,re_rule,new_str):
    re_c = re.compile(re_rule)
    new_file_list = []
    for i in range(0,len(file_list)):
        new_base_name=re_c.sub(new_str,file_list[i][file_list[i].rindex(os.sep):])
        new_full_path=file_list_re[i][:file_list_re[i].rindex(os.sep))+os.sep+base_name
        new_file_list.append (new_full_path)
    return new_file_list
    
def rename2list(old_list,new_list):
    for i in range(0,len(old_list)):
        os.rename(old_list[i],new_list[i])

        
def main():
    root=""
    re_rule=""
    new_str=""

    old_file_list=get_file_list(root)
    re_file_list=(old_file_list,re_rule)
    new_file_list=rename2new_file_list(re_file_list,re_rule,new_str)
    rename2list(re_file_list,new_file_list)
if __name__ == '__main__'
    main()
混小子爱
2017-10-20 · TA获得超过688个赞
知道小有建树答主
回答量:685
采纳率:64%
帮助的人:577万
展开全部
使用re.sub可以批量修改文件名。
具体参考python re模块和文件的文档
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式