首页 > 编程语言 > 详细

python3 实现文件夹内批量对图片重命名

时间:2020-01-20 17:50:31      阅读:254      评论:0      收藏:0      [点我收藏+]

初衷

  1. 练习Python,提高动手能力。
  2. 珍藏的壁纸文件夹名命有点乱。
  3. 可以学习下一些基础的库

技术分享图片

开始(.jpg,无筛选)

First

首先找到OS库,寻找可以遍历文件名的。找到了OS.walk()

os.walk(top, topdown=Ture, onerror=None, followlinks=False)  
该函数可以得到一个三元tupple(dirpath, dirnames, filenames).
dirpath:string,代表目录的路径;
dirnames:list,包含了当前dirpath路径下所有的子目录名字(不包含目录路径);
filenames:list,包含了当前dirpath路径下所有的非目录子文件的名字(不包含目录路径)
注意,dirnames和filenames均不包含路径信息,如需完整路径,可使用os.path.join(dirpath, dirnames)

技术分享图片

通过遍历感受下os.walk的使用。如果现在只做当前目录的话,只需要第一个dirpath即可。

Second

既然我们需要重命名,就需要用到os中的os.rename()。因为文件名不包含目录文件,我们可以通过os.path.join()来合并目录命,然后循环重命名到结束。

技术分享图片

 

但是在rename前发现,这种的完整路径每次都需要带上后缀,十分的不方便。

Third

分离文件名字和后缀名的话可以用到os.path.splitext(),但是想想能不能做个分开的筛选,PNG归为一堆,JPG归为一堆。这里都是jpg,筛选的晚上继续补全。这里就把jpg来重命名。

 

Final

最后完成的代码

import os  

def file_name(file_dir):
    dirpath_list=[]
    filenames_list=[]
    old_route=[]
    new_route=[]
    yunying=0
    for dirpath, dirnames, filenames in os.walk(file_dir):
        dirpath_list.append(dirpath)
        filenames_list.append(filenames)
    filenames_list0=filenames_list[0][:]

    for i in filenames_list0:
        old_route.append(os.path.join(dirpath_list[0],i))
        new_route.append(os.path.join(dirpath_list[0],GuiMie+str(yunying)+.jpg))
        yunying+=1
    try:
        for i in range(len(old_route)):
                os.rename(old_route[i],new_route[i])
        print(‘rename successfully)
    except Exception as e:
        print(e)

if __name__ == __main__:
    file_name(rC:\Users\dell\Pictures\鬼灭)

效果图:

技术分享图片

python3 实现文件夹内批量对图片重命名

原文:https://www.cnblogs.com/BOHB-yunying/p/12218614.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!