python实现某目录下将多个文件夹内的同一类型文件复制到一个文件夹中

概述

现实生活中,我们经常有这样的需求,比如下载了一些文件,但每个需要的文件在不同文件夹中
如下图,有三个文件夹,文件夹1内含有1.mp4文件
文件夹2中内含有2.mp4文件,文件夹3中含有3.mp4文件。
我们有时候需要把1.mp4, 2.mp4, 3.mp4文件复制到一个新的文件夹中。

在这里插入图片描述
下面介绍如何使用python的os和shutil库来完成这个任务

# 创建目标文件夹
import os
import shutil


def CreateDir(path):
    isExists = os.path.exists(path)
    # 判断结果
    if not isExists:
        # 如果不存在则创建目录
        os.makedirs(path)
        print(path + " 目录创建成功")
    else:
        # 如果目录存在则不创建,并提示目录已存在
        print(path + " 目录已存在")


# 遍历源文件夹及其子文件夹
def CopyFile(src_dir, dst_dir):
    for foldername, subfolders, filenames in os.walk(src_dir):
        for filename in filenames:
            # 检查文件是否以.mp4结尾
            if filename.endswith(".mp4"):
                # 构造源文件路径和目标文件路径
                src_file = os.path.join(foldername, filename)
                dst_file = os.path.join(dst_dir, filename)

                if os.path.isfile(dst_file):
                    continue
                # 移动文件
                shutil.copyfile(src_file, dst_file)
          

if __name__ == "__main__":
    # 原始文件夹路径
    src_dir = "D:\\xxxx\\xxxx"

    # 目标文件夹路径
    dst_dir = "D:\\xxxx\\xxvideo"

    CreateDir(dst_dir)
    CopyFile(src_dir, dst_dir)

需要修改的地方

src_dir = ‘’ " 中的改为自己的需要提取的文件路径
dst_dir = ‘’ " 中的改为自己的需要放置的文件路径,默认是新建文件,自己新建也可以
注意使用 \ 进行路径分割

一般视频文件较大,需要的python代码运行时间会更长一点,需要耐心等待。
如果你想复制其他类型的文件,你可以更改if filename.endswith(“.mp4”):这一行的条件,就可以了。
比如复制图片,就可以改为

if filename.endswith(".jpg"):

总结

在处理包含多个文件夹和大量jpg格式照片的任务时,我们可以使用Python的os和shutil库来实现。
首先,我们需要设置原始文件夹路径和目标文件夹路径。
在代码中,我们使用了os.walk()函数来遍历所有文件夹和文件。oswalk()能深度遍历每一个文件夹和子文件夹下面的文件。
对于每个文件,我们检查其是否为.mp4格式,如果是,则复制到目标文件夹中。

请注意,你需要将 “原始文件夹路径” 和 “目标文件夹路径” 替换为你实际的文件夹路径。
需要注意的是,如果文件较大,可能需要一些时间来处理,因此请耐心等待。通过这种方式,你可以方便地整理和处理大规模的文件,提高了工作效率。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值