python自动化办公(4)_图片分类保存

工作中遇到这样一种情况:提取的客户影像数据(jpg格式的图片),需要下发给相应网点,即在哪个网点办理的业务影像就把相应图片发给这个网点负责人。
即下图展示,当时是几个G的图片,分给90多家支行,手工是不可能手工分的,只能靠python自动分类了。
在这里插入图片描述

import os,tarfile,sys,zipefile
import shutil
from pathlib2 import Path
import pandas as pd 

root = r'C:\Users\lmy\Desktop\202009142425' #需要分类的文件目录
path = Path(root)  #
dir = os.listdir(root)  #子文件列表

df = read_excel(r'C:\Users\lmy\Desktop\影像号对应分行.xls')  #读取影像号对应分行的表格
branch_split = list(set(df['分行名称'])) #所有的分行名称列表

#获取该目录下所有jpg文件的路径列表(包括子文件夹里的jpg)
get_allfile_url(filepath):  
	allFile_url = []
	for p in filepath.rglob('*.jpg'):
		p = os.path.abspath(p)
		allFile_url.append(p)
	return allFile_url


allFile_url_old = get_allfile_url(path)

for split in branch_split:  #遍历每个分行

	path_fh = os.path.join(root,split)  #需创建的分行文件夹路径
	isExists = os.path.exists(path_fh)  #判断是否已存在
	if not isExists:   #不存在,则新建
		os.mkdir(path_fh)
		print(path_fh+'文件夹创建成功')
	else:              
		print(path_fh+'文件夹已存在')

	split_ke = df[df['分行名称']==split].条形码.values  #获取每个分行的条形码数据
	for ke in dirs:   #遍历需划分的每个条形码文件名
		if ke in split_ke:  #判断条形码是否属于当前分行
			file = os.path.join(root,ke)  #获取当前条形码文件路径
			file_copy = os.path.join(path_fh,ke)  #复制到新的文件夹的路径
			shutil.copytree(file,file_copy)  #复制
			zip_name = split+'.tar.gz'       #生成压缩文件的文件名称
			zip_path = os.path.join(root,zip_name)  #生成压缩文件的文件路径
			with tarfile.open(zip_path,'w') as tar:  #生成压缩文件
				tar.add(path_fh,arcname=os.path.basename(path))  
		else:
			continue

tar.close()  #最后需要关闭

dirs2 = os.listdir(root)  #现在根目录下子文件列表
allFile_url_new = get_allfile_url(path)  #现在根目录下子jpg文件路径列表
num1 = len(dirs2)-len(dirs)  #根目录下新增的文件夹数量
num2 = len(allFile_url_new)-len(allFile_url_old)  #根目录下新增的jpg图片数量


print('创建的文件夹个数:%d'%num1)
print('复制的图片个数:%d'%num2)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值