Python 文件批量重命名
目录
Python 文件批量重命名
方法一(os.listdir):
1.加前缀
2.替换重命名/后缀
方法二(os.walk):
1.加前缀
2.替换重命名/后缀
方法一(os.listdir):
用os.listdir方法,只修改父文件夹下的某种类型文件名,子文件夹里的同种类型文件不受影响。

1.加前缀
比如,我们只给Test2文件夹下的001.txt文件加上前缀‘test-’

不影响子文件夹里的文件aaa.txt

运行代码,提示改名成功的文件有一个:
来验收结果:

其他子文件夹下的txt类型文件未受影响

python 代码如下:

import os,sys                       #导入模块
def add_prefix_files():             #定义函数名称
    mark = 'test-'                 #准备添加的前缀内容
    old_names = os.listdir( path )  #取路径下的文件名,生成列表
    for old_name in old_names:      #遍历列表下的文件名
            if  old_name!= sys.argv[0]:  #代码本身文件路径,防止脚本文件放在path路径下时,被一起重命名
               if old_name.endswith('.txt'):   #当文件名以.txt后缀结尾时
                    os.rename(os.path.join(path,old_name),os.path.join(path,mark+old_name))  #重命名文件
                    print (old_name,"has been renamed successfully! New name is: ",mark+old_name)  #输出提示

if __name__ == '__main__': 
        path = r'E:\我的学习\编程\Python\PythonTest2\Test2'   #运行程序前,记得修改主文件夹路径!
        add_prefix_files()         #调用定义的函数,注意名称与定义的函数名一致
 
记得修改路径,和需要替换的内容。添加后缀不可用此方法,应该用替换方式。
可以举一反三的是:善用 if old_name!=…,可以排除掉不想改名的文件。

2.替换重命名/后缀
如果要给文件加后缀,不能直接用“在os.rename那里,把mark+old_name换成old_name+mark”的方法,因为文件是有拓展名的。可以采用替换的方式来添加后缀。
比如只给Test2文件夹下的001.txt文件加上后缀‘-test’:

不影响子文件夹下的其他txt文件

运行成功后会有提示,一个文件名修改成功:

验收结果:

其他子文件夹下的txt类型文件未受影响

python 代码如下:

import os,sys                       #导入模块
def rename_files():             #定义函数名称
    old_names = os.listdir( path )  #取路径下的文件名,生成列表
    for old_name in old_names:      #遍历列表下的文件名
            if  old_name!= sys.argv[0]:  #代码本身文件路径,防止脚本文件放在path路径下时,被一起重命名
               if old_name.endswith('.txt'):   #当文件名以.txt后缀结尾时
                    new_name=old_name.replace('.txt','-test.txt')   #将原来名字里的‘.txt’替换为‘-test.txt’,相当于加个后缀了
                    os.rename(os.path.join(path,old_name),os.path.join(path,new_name))  #重命名文件
                    print (old_name,"has been renamed successfully! New name is: ",new_name)  #输出提示

if __name__ == '__main__': 
        path = r'E:\我的学习\编程\Python\PythonTest2\Test2'   #运行程序前,记得修改主文件夹路径!
        rename_files()         #调用定义的函数,注意名称与定义的函数名一致
 
记得修改路径,文件后缀,需要替换的内容。
需要批量替换文件名也是一样的。

方法二(os.walk):
要在父文件夹下,将所有某种类型的文件(无论其在子文件夹里还是子文件夹外)加上前缀,可以用此方法。

1.加前缀
比如,我们要给Test2文件夹下所有txt文件都加上前缀‘test-’。(无论001.txt还是aaa.txt)

运行代码,提示改名成功的文件有四个:
来验收结果:

python 代码如下:

import os,sys                       #导入模块
def add_prefix_files():             #定义函数名称
    mark = 'test-'                 #准备添加的前缀内容
    for foldName, subfolders, filenames in os.walk(path):     #用os.walk方法取得path路径下的文件夹路径,子文件夹名,所有文件名
        for filename in filenames:     #遍历列表下的子文件夹名
            if  filename!= sys.argv[0]:  #代码本身文件路径,防止脚本文件放在path路径下时,被一起重命名
               if filename.endswith('.txt'):   #当文件名以.txt后缀结尾时
                    os.rename(os.path.join(foldName,filename),os.path.join(foldName,mark+filename))  #重命名文件
                    print (filename,"has been renamed successfully! New name is: ",mark+filename)  #输出提示

if __name__ == '__main__': 
        path = r'E:\我的学习\编程\Python\PythonTest2\Test2'   #运行程序前,记得修改主文件夹路径!
        add_prefix_files()         #调用定义的函数,注意名称与定义的函数名一致
 
记得修改路径,和需要替换的内容。添加后缀不可用此方法,应该用替换方式,可以继续往后看。

2.替换重命名/后缀
如果要给文件加后缀,不能直接用“在os.rename那里,把mark+old_name换成old_name+mark”的方法,因为文件是有拓展名的。可以采用替换的方式来添加后缀。
比如要给Test2文件夹下的所有txt文件都加上后缀‘-test’:

运行代码,提示改名成功的文件有四个:
验收结果:


python 代码如下:

import os,sys                       #导入模块
def rename_files():             #定义函数名称
    for foldName, subfolders, filenames in os.walk(path):     #用os.walk方法取得path路径下的文件夹路径,子文件夹名,所有文件名
        for filename in filenames:     #遍历列表下的子文件夹名
            if  filename!= sys.argv[0]:  #代码本身文件路径,防止脚本文件放在path路径下时,被一起重命名
               if filename.endswith('.txt'):   #当文件名以.txt后缀结尾时
                    new_name=filename.replace('.txt','-test.txt')   #将原来名字里的‘.txt’替换为‘-test.txt’,相当于加个后缀了
                    os.rename(os.path.join(foldName,filename),os.path.join(foldName,new_name))  #重命名文件
                    print (filename,"has been renamed successfully! New name is: ",new_name)  #输出提示

if __name__ == '__main__': 
        path = r'E:\我的学习\编程\Python\PythonTest2\Test2'   #运行程序前,记得修改主文件夹路径!
        rename_files()         #调用定义的函数,注意名称与定义的函数名一致
 
记得修改路径,和需要替换的内容。
需要批量替换文件名也是一样的。
 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐