1 前言

最近工作上碰到个事情,一个文件夹里有有很多款货的图片,每款货又有若干张不同角度拍摄的图片,我们需要把款货的图片整理在一起,放到一个单独的用它货号命名的文件夹里,也就是说如果有100个款的货,那么就要新建100个新文件夹,并且把对应货品放到对应的文件夹里。可以想象,如果用纯手工的方法,可能需要好几个小时的工作量。今天就来分享如何利用python快速的解决这个问题。

2 python的实现方法

① 导入相关的包:

import os
from shutil import copy

如果还没有安装shutil这个包首先需要用下面的命令现状这个包

pip install shutil

② 假设我们的全部图片在“E:\temp\全部图片”这个文件夹里面。



python怎么拷贝文件 python拷贝文件到指定文件夹_svn忽略指定文件夹下的文件

我们要把新建好的单独的文件夹都放到“E:\temp\拆分后图片”这个文件夹里

分别定义两个变量来表示这两个路径。

file_path1 = r'E:\temp\全部图片'    # 存储所有图片的文件夹
file_path2 = r'E:\temp\拆分后图片'  # 存储拆分后文件夹的文件夹

③ 获取所有图片名称的列表

# os.listdir方法可以获取指定路径下所有文件的名称
dir_list = os.listdir(file_path1)

dir_list 就是所有图片名称的一个列表。



python怎么拷贝文件 python拷贝文件到指定文件夹_python怎么拷贝文件_02

④ 利用for循环确定每张图片的路径和将要被复制到的路径。

for pic_name in dir_lists:
    from_path = file_path1 + '\\' + pic_name  # 图片路径
    code = pic_name[:13]  # 取出货号
    to_path = file_path2 + '\\' + code  # 将要复制到的新路径

⑤ 根据这个新的路径创建文件夹,然后把图片复制到新文件夹中

for pic_name in dir_list:
    from_path = file_path1 + '\\' + pic_name
    code = pic_name[:13]
    to_path = file_path2 + '\\' + code

    if not os.path.isdir(to_path): # 判断文件夹是否存在
        os.makedirs(to_path) # 创建文件夹
    copy(from_path, to_path) # 复制文件到文件夹

运行代码后效果如下:



python怎么拷贝文件 python拷贝文件到指定文件夹_ubuntu复制文件到另一个文件夹_03

每个小文件夹里都是对应的若干张图片

完整代码如下:

import os
from shutil import copy


file_path1 = r'E:\temp\全部图片'    # 存储所有图片的文件夹
file_path2 = r'E:\temp\拆分后图片'  # 存储拆分后文件夹的文件夹


dir_list = os.listdir(file_path1)

for pic_name in dir_list:
    from_path = file_path1 + '\\' + pic_name
    code = pic_name[:13]
    to_path = file_path2 + '\\' + code

    if not os.path.isdir(to_path):
        os.makedirs(to_path)
    copy(from_path, to_path)

好了以上就是今天的分享,希望大家可以在工作中用的到。