Python文件分类到指定大小目录

前两天心血来潮将P站从2020-01-01至2020-08-05的月榜爬了下来,数据库中直接存储了9000多行的图片信息,但不可能全部下载下来,于是做了一个筛选,筛选出了3000多条信息将它们的原图下载下来,总数达到了9000多张图片,总共大小12G下载的图片
但这么大的文件想从服务器上把它帮回来可是一个不小的工程,于是我想将这些文件开来放到同样大小不同目录下进行压缩之后无论是上次网盘还是整理都很方便。于是就有了这样的代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# @Time : 2020/8/7 21:23
# @Author : Aries
# @Site : 
# @File : 大小分类.py
# @Software: PyCharm

import os,shutil

def move_size(path):
	dir_num = 0 #初始化目录数
	while 1:
		dir_num += 1
		new_path = f'{path}/part{dir_num}'
		os.mkdir(new_path)  # 创建一个目录
		file_list = os.listdir(path) #当前目录下的文件
		all_size = 0  # 初始化一个目录总大小
		end = False #结束命令
		a = ''
		for i in sorted(file_list):#文件名从小到大排序
			k = i
			i = path + '/' + i #拼接路径
			if os.path.isfile(i): #是否是文件
				#16106127364是1.5G的字节大小
				end = False
				all_size += int(os.path.getsize(i))
				if all_size < 1610612736 or k.split('_')[0] == a:#如果总大小小于1.5GB或者和上一张图片同一个ID,
					# 则移动文件到目录下
					a = k.split('_')[0] #将新的ID重新赋值到a
					shutil.move(i,new_path)
				else:
					a = k.split('_')[0]
					break
			else:
				end = True
				continue
		if end:
			break
	print('成功')


move_size(r'/mnt/file/filepan/5')

这样既可实现每个目录都在1.5G左右
每个目录大小在1.5G左右

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值