python怎么把一个文件夹内的文件复制到另外一个文件夹(进阶重命名复制)

1 篇文章 0 订阅
1 篇文章 0 订阅

  
需求:把一个文件夹内(包含子文件夹)的所有文件复制到另一个文件夹下

#coding=utf-8
import os
import shutil

old_path = r'F:\1'  # 要复制的文件所在目录
new_path = r'F:\2'  #新路径

def FindFile(path):
    for ipath in os.listdir(path):
        fulldir = os.path.join(path, ipath)  # 拼接成绝对路径
        print(fulldir)         #打印相关后缀的文件路径及名称
        if os.path.isfile(fulldir):  # 文件,匹配->打印
            shutil.copy(fulldir,new_path)
        if os.path.isdir(fulldir):  # 目录,递归   
            FindFile(fulldir)

FindFile(old_path)

:如果不需要复制文件夹内的子文件夹可删除下面这2行

if os.path.isdir(fulldir): # 目录,递归
  FindFile(fulldir)引用

进阶需求代码:

一、把一个文件夹内(包含子文件夹)指定后缀的文件复制到另一个文件夹

#coding=utf-8
import os
import shutil

old_path = r'F:\1'  # 要复制的文件所在目录
new_path = r'F:\2'  #新路径
suffix = '.xml'     #要复制的文件后缀

def FindFile(path, tagfile):
    for ipath in os.listdir(path):
        fulldir = os.path.join(path, ipath)  # 拼接成绝对路径
        if tagfile in os.path.split(fulldir)[1]:  # 查找包含了指定关键字的文件
            print(fulldir)        #打印相关后缀的文件路径及名称
            if os.path.isfile(fulldir):  # 文件,匹配->打印
                shutil.copy(fulldir,new_path)
            if os.path.isdir(fulldir):  # 目录,递归
                FindFile(fulldir, tagfile)

FindFile(old_path, suffix)


二、把一个文件夹内(包含子文件夹)指定后缀的文件复制到另一个文件夹并生成多份指定名称的文件

#coding=utf-8
import os
import re
import shutil

old_path = r'F:\1'  # 要复制的文件所在目录
new_path = r'F:\2'  #新路径
suffix = '.xml'     #要复制的文件后缀


def FindFile(path, tagfile):
    for ipath in os.listdir(path):
        fulldir = os.path.join(path, ipath)  # 拼接成绝对路径
        print(fulldir)         #打印相关后缀的文件路径及名称
        if os.path.isfile(fulldir):  # 文件,匹配->打印
            if tagfile in os.path.split(fulldir)[1]:  # 查找包含了指定关键字的文件
                data_red = fulldir.split("\\")[len(re.split(r'\\',path))]  # 拿到文件名称,也是项目名称
                print(data_red)       #打印相关后缀的文件名称
                for i in range(1,66):   #目的是复制65份data_red文件
                    data_re = re.sub(r'\d+', str(i), data_red)   #提取需要改的data_red字节
                    shutil.copy(r"{0}\{1}".format(old_path,data_red), r"{0}\{1}".format(new_path,data_re))
        if os.path.isdir(fulldir):  # 目录,递归
            FindFile(fulldir, tagfile)


FindFile(old_path, suffix)


执行代码效果图:

  old_path下文件:
在这里插入图片描述
  new_path下文件部分截图:
在这里插入图片描述

  • 13
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值