Python 复制文件并重命名

在同一文件夹下复制并重命名

比如,想在把Test2文件夹下,所有子文件夹(诸如001、002、003)下的txt文件复制一份,并重命名为原名+_new
在这里插入图片描述
在这里插入图片描述
运行后,提示有三个文件被复制并重命名(我这里用的是VSCode,大家也可以用其他工具):
在这里插入图片描述来检验下结果:
没有动外面的这一个文件,代码里把它排除掉了
在这里插入图片描述
子文件夹下的所有txt文件都被复制并重命名了:
在这里插入图片描述

python 代码如下:

import os,shutil                                            #导入模块
def copy_files():                                           #定义函数名称
    for foldName, subfolders, filenames in os.walk(path):     #用os.walk方法取得path路径下的文件夹路径,子文件夹名,所有文件名
           for filename in filenames:                         #遍历列表下的所有文件名
              if filename!= r'001.txt':                       #当文件名不为“001.txt”时
                  if filename.endswith('.txt'):                #当文件名以.txt后缀结尾时
                     new_name=filename.replace('.txt','_new.txt')               #为文件赋予新名字
                     shutil.copyfile(os.path.join(foldName,filename), os.path.join(foldName,new_name))    #复制并重命名文件
                     print(filename,"copied as",new_name)           #输出提示

if __name__ == '__main__': 
        path = r'E:\我的学习\编程\Python\PythonTest2\Test2'   #运行程序前,记得修改主文件夹路径!
        copy_files()         #调用定义的函数,注意名称与定义的函数名一致

记得修改路径。要是在同一路径下复制了,不重命名,会报错。

复制文件到新路径下

如果想要复制父文件下的所有txt文件到新路径下。
比如现在Test2父文件夹下有三个子文件夹,每个子文件下都有txt文件。
在这里插入图片描述
在这里插入图片描述
我们想把所有txt文件复制到新文件new_Test2下:
在这里插入图片描述运行成功提示有三个文件被复制(我这里用的是VSCode,大家也可以用其他工具):
在这里插入图片描述再来看新文件下,就已经有这三个文件了:
在这里插入图片描述

python 代码如下:

import os,shutil                                            #导入模块
def copy_files():                                           #定义函数名称
    for foldName, subfolders, filenames in os.walk(path):     #用os.walk方法取得path路径下的文件夹路径,子文件夹名,所有文件名
           for filename in filenames:                         #遍历列表下的所有文件名
                if filename.endswith('.txt'):                #当文件名以.txt后缀结尾时
                        new_name=filename.replace('.txt','_new.txt')               #为文件赋予新名字
                        shutil.copyfile(os.path.join(foldName,filename), os.path.join(path2,new_name))    #复制到新路径下,并重命名文件
                        print(filename,"copied as",new_name)           #输出提示

if __name__ == '__main__': 
        path = r'E:\我的学习\编程\Python\PythonTest2\Test2'   #运行程序前,记得修改主文件夹路径!
        path2 =r'E:\我的学习\编程\Python\PythonTest2\new_Test2'  #存放文件的新路径,不要放在原路径下,不然会多复制两份
        copy_files()         #调用定义的函数,注意名称与定义的函数名一致

注意修改路径,及重新命名的规则。新路径最好是不要在原来的目录下。
如果不想重命名文件,也没关系,把shutil.copyfile里的new_name换成filename就行了。

shutil.copyfile(os.path.join(foldName,filename), os.path.join(path2,filename))
  • 18
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值