不知道大家有没有很多照片或者文件要上传百度云,不是会员的话就会提示超过500不能上传
文件少了还行,自己动手分割一下保存为一个文件夹内只有500个的子文件夹就可以了
但是数量多的话,手动分割也很麻烦,于是就想着写了一段代码来实现
先上代码:
import os
print("本程序把一个目录下的文件按相同的数量保存为子文件夹")
print("------------------------------------------------\n")
def jindu(i,scale):
a = '*' * i
b = '.' * (scale - i)
c = (i/scale)*100
print("\r{:^3.0f}%[{}->{}]".format(c,a,b))
file_path = input("请输入要处理的文件目录(不带引号):\n")
list_paths = os.listdir(file_path)
total = len(list_paths)
print("{} 文件夹下共有{}个文件!\n".format(file_path,total))
k = eval(input("请输入一个子文件夹里要保存的数量:\n"))
m = total // k
n = total % k
print("------执行开始------")
for i in range(m):
fath1 = file_path + "\\{}_{}\\".format((i*k+1),(i*k+k))
folder = os.path.exists(fath1)
if not folder:
os.makedirs(fath1)
for o in range(k):
os.rename(os.path.join(file_path , list_paths[i*k+o]),os.path.join(fath1 , list_paths[i*k+o]))
jindu(i,m)
if n != 0:
fath2 = file_path + "\\{}_{}\\".format(m*k+1,m*k+n)
folder = os.path.exists(fath2)
if not folder:
os.makedirs(fath2)
for o in range(n):
os.rename(os.path.join(file_path , list_paths[m*k+o]),os.path.join(fath2 , list_paths[m*k+o]))
print("------执行结束------")
input()
运行程序
原文件夹下: