Python批量给文件改名的两种方法

Python 文件批量重命名

方法一(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()         #调用定义的函数,注意名称与定义的函数名一致

记得修改路径,和需要替换的内容。
需要批量替换文件名也是一样的。

  • 34
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
批量修改Python文件文件名,可以使用os模块中的listdir函数来获取指定目录下的所有文件名。然后,可以使用字符串的replace方法或正则表达式来替换文件名中的特定内容。根据提供的引用内容,有两种方法可以实现文件名的批量修改。 方法一(使用os.listdir函数): 1. 使用os.listdir函数获取指定目录下的所有文件名。 2. 遍历文件名列表,对每个文件名进行修改,可以添加前缀或使用replace方法替换特定内容。 3. 使用os.rename函数将修改后的文件名应用到文件方法二(使用os.walk函数): 1. 使用os.walk函数遍历指定目录及其子目录下的所有文件。 2. 遍历每个文件,对文件名进行修改,可以添加前缀或使用replace方法替换特定内容。 3. 使用os.rename函数将修改后的文件名应用到文件。 根据提供的引用内容,可以参考以下示例代码来批量修改Python文件文件名: ```python import os def rename_files(): path = r'E:\我的学习\编程\Python\PythonTest2\Test2' # 修改为指定的目录路径 for filename in os.listdir(path): if filename.endswith('.py'): # 只修改指定类型的文件名,如.py文件 new_filename = filename.replace('old_content', 'new_content') # 使用replace方法替换特定内容 os.rename(os.path.join(path, filename), os.path.join(path, new_filename)) # 应用修改后的文件名 if __name__ == '__main__': rename_files() ``` 请注意,以上示例代码中的路径、需要替换的内容以及替换后的内容需要根据实际情况进行修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值