将旧目录中所有文件的名称批量修改为统一格式(将数字转换为6位高位零),old,下,文件名,转化,补,0

发表时间:2020-02-11
"""
将该py文件与待处理文件夹放在同一目录下,并将待处理文件夹命名为old
该代码将自动创建新文件夹new,并将old的文件夹下的所有文件拷贝到新文件夹new中,并将文件名更名(原文件名为纯数字,将数字变成6位高位补0;若为其他文件名修改,请自己修改代码33-34行)
该代码可快速处理文件数量较多且在源文件夹中添加了少部分文件仍需要处理,该代码将只处理新增加的文件,节省时间。若需要删除源文件夹中的部分文件,请手动删除new文件夹,再运行程序。
"""

import os
import re
import shutil

s=os.sep
path1=os.path.abspath('.') #py文件和数据文件夹old放在同一目录下
root = path1 + s
oldpath = root + 'old' + s #原文件放在old文件夹里
newpath = root + 'new' + s #原文件放在old文件夹里
fname = [] #将文件名以.分割:元素1为文件名,元素2为后缀
fnum = [] #文件名数字部分
newpath = root + 'new' + s
i = 0
j = 0

if os.path.exists(newpath)!=True:
    os.mkdir(newpath)

pic_name = os.listdir(oldpath) #存储oldpath路径下所有文件名,列表长度为文件个数
for f in pic_name:
    i = i+1
    print("-----------共需判断"+str(len(pic_name))+"个文件是否需要修改,当前已处理"+str(i)+"个,当前进度为"+str(i*100//len(pic_name))+"%-----------")

    fname = os.path.splitext(f)

    #文件名数字部分修改
    old_num = int(fname[0]) #将文件名前半部分转化为数字
    new_num = "%06d"%(old_num) #将数字转化成6位,不足高位补0

    fp1 = newpath + str(old_num) + fname[1] #新文件夹中直接复制过来的文件名
    fp2 = newpath + str(new_num) + fname[1] #新文件夹中更改过名称的文件名

    #在新文件夹中,若不存在重命名后的文件,则复制原文件中的文件
    fo1 = oldpath + f
    fo2 = newpath + f
    if os.path.exists(fp2) != True:
        shutil.copyfile(fo1, fo2)

    #在新目录中,若不存在重命名后的文件,则重命名
    if os.path.exists(fp2) != True:
        os.rename(fp1,fp2)
        j = j+1

print("本次运行处理的文件个数为:" + str(j))

文章来源互联网,如有侵权,请联系管理员删除。邮箱:417803890@qq.com / QQ:417803890

微配音

Python Free

邮箱:417803890@qq.com
QQ:417803890

皖ICP备19001818号-4
© 2019 copyright www.pythonf.cn - All rights reserved

微信扫一扫关注公众号:

联系方式

Python Free