概述
现实生活中,我们经常有这样的需求,比如下载了一些文件,但每个需要的文件在不同文件夹中
如下图,有三个文件夹,文件夹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格式,如果是,则复制到目标文件夹中。
请注意,你需要将 “原始文件夹路径” 和 “目标文件夹路径” 替换为你实际的文件夹路径。
需要注意的是,如果文件较大,可能需要一些时间来处理,因此请耐心等待。通过这种方式,你可以方便地整理和处理大规模的文件,提高了工作效率。