文章目录

  • 0.前言
  • 1.源码
  • 2.代码解析
  • 3.授人以渔


0.前言

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

原文件夹信息:

python指定 重命名文件夹_python

代码实现后文件夹信息:

python指定 重命名文件夹_文件名_02

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变量是用来获取该文件夹下所有的文件名称(包括文件夹);初期学代码,对于不懂不理解的变量,可以都打印出来看看。

python指定 重命名文件夹_重命名_03

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函数是将设置好的重命名写入到具体文件上面。

运行输出结果打印:

python指定 重命名文件夹_python指定 重命名文件夹_04

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 …