前两天心血来潮将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左右