【7】python代码---批量对文件进行重命名处理

0.前言

最近在学爬虫,从百度搜索上面爬取了一些乱序命名的图片文件,想着把它们重命名一下,类似数据预处理。就弄了一个python脚本来对文件数据进行重命名。
原文件夹信息:
在这里插入图片描述

代码实现后文件夹信息:
在这里插入图片描述

1.源码

import os

if __name__ == '__main__':
    path = r"C:/Users/27801/Documents/Datasets/test_images"  
    file_names = os.listdir(path)             
    print(f'file_names:{file_names}')         
    count = 1                                   
    for file in file_names:                     
        print(f"file:{file}")
        old_name = os.path.join(path, file)     
        print(f'old_name:{old_name}')
        if os.path.isdir(old_name):             
            continue
        filename = os.path.splitext(file)[0]    
        filetype = os.path.splitext(file)[1]    
        new_name = os.path.join(path, '_x_w' + str(count).zfill(5) + filetype)  
        print(f'new_name:{new_name}')
        os.rename(old_name, new_name)    
        count += 1                 

2.代码解析

import os

首先是使用import语句导入代码需要用到的os库

path = r"C:/Users/27801/Documents/Datasets/test_images"  

这里的path变量是获取需要处理的图片文件所在路径(即文件夹路径),注意斜杠的方向。

file_names = os.listdir(path)             
print(f'file_names:{file_names}')

file_names变量是用来获取该文件夹下所有的文件名称(包括文件夹);初期学代码,对于不懂不理解的变量,可以都打印出来看看。
在这里插入图片描述

for file in file_names:                     
        print(f"file:{file}")
        old_name = os.path.join(path, file)     
        print(f'old_name:{old_name}')
        if os.path.isdir(old_name):             
            continue
        filename = os.path.splitext(file)[0]    
        filetype = os.path.splitext(file)[1]    
        new_name = os.path.join(path, '_x_w' + str(count).zfill(5) + filetype)  
        print(f'new_name:{new_name}')
        os.rename(old_name, new_name)    
        count += 1

for循环遍历所有文件名;

old_name是原来的文件路径 加上文件名 组合而成的,具体到某一张图片文件的路径。 只有这样才可以访问到文件下的一张图片文件;

if语句的意思是,如果是文件夹则跳过;

filename和filetype分别是取到文件的名称和后缀,例如:file=‘193edida.jpg’,则filename=‘193edida’,filetype=‘.jpg’ ;

new_name是重命名的文件名称设置,path是到文件夹的路径,后面是具体的文件名称,文件名称又由两部分组成,文件名和文件后缀,重命名我们要改的就是前面的部分;zfill是设置文件名的长度,若count大小不足5,会用0来填充;

rename函数是将设置好的重命名写入到具体文件上面。

运行输出结果打印:
在这里插入图片描述

3.授人以渔

count = 1 

count不一定要从1开始,可以设置为任意数字。

new_name = os.path.join(path, '_x_w' + str(count).zfill(5) + filetype)

这部分有两个点可以改。首先是path,这是和原文件名一致的路径,若写一个新的路径,比如new_path,就不是在原来的文件下改了,而是重命名之后再另存到其他文件夹下;

第二个是 ‘_x_w’ + str(count).zfill(5) 这部分,可以不加前面的字符,也可以取消填充zfill函数,就是可以自己设计,这里引入数字是为了不让文件重名,不然会报错。

完成+1 …

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_x_w

你的肯定是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值