历史文章/不再维护

使用Python按某个规则批量修改文件名

这里给出一个使用Python批量修改文件名的例子,供参考。其中,搜索文件用到os.walk函数,修改文件名用到os.rename函数。文件名的修改规则可根据具体情况自行修改,对于复杂的规则可能需要引入正则表达式re来进行字符判断。

"""
This code is supported by the website: https://www.guanjihuan.com
The newest version of this code is on the web page: https://www.guanjihuan.com/archives/25453
"""

import os

# 选取某个目录
directory = 'E:/'

def main():
    for root, dirs, files in os.walk(directory):
        for i0 in range(len(files)):
            if 'pdf' in files[i0] or 'djvu' in files[i0]: # 满足某个条件的文件 

                # 显示旧文件名
                name = files[i0]
                print(name) # 显示旧文件名

                # 显示新文件名
                new_name = modify_name(name)
                print(new_name)
                print()

                # # 修改文件名。注意:需要检查前面的代码,尤其是modify_name的规则看是否都满足,再运行下面的代码,否则文件名的修改会出现遗漏或混乱。
                # if new_name != None:
                #     os.rename(root+'/'+name, root+'/'+new_name) 
        

def modify_name(name):  # 按某种规则修改文件名
    array = name.split(' - ')  # 通过' - '把这类型的文件名切开
    if len(array) != 3:
        print('Miss:', name)
        new_name = None  # 如果不满足规则,则不修改
    else:
        new_name= array[1]+' - '+array[0]+' - '+array[2] # 做个对调
    return new_name


if __name__ == '__main__':
    main()
443 次浏览

【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code