[Python] 纯文本查看 复制代码 import os
import re
import os.path as osp
import shutil
reg=re.compile(r'.*(.jpg)$')#以jpg结尾匹配照片
path = input("请输入要分类文件夹路径:")
# 1、获取照片路径列表
def file_path():
"""
获取当前工作路径下所有照片绝对路径,并存放在一个列表内
"""
file_path = [] # 照片文件路径列表
filenames=os.listdir(path)#后面需要在某单个文件夹内创建文件夹
list_j = [osp.join(path, x) for x in filenames if osp.isfile(osp.join(path, x))
if reg.findall(x)] # 获取图片的文件名,并拼接完整路径
for s in list_j:
if s: # 非空
file_path.append(s)
file_path.sort(key=lambda x: osp.basename(osp.splitext(x)[0])[8:19], reverse=False) # 以照片的文件名顺序排序(年月日时分秒 )
return file_path
def fenlei():
while True:
summ = 0
dic = {}
lit = []
resm=len(file_path())
name=input("请输入要创建的文件夹名称:")
if not name:
break
else:
num=int(input("请输入照片数量:"))
summ+=num#分配照片数量
resm-=num#剩余照片数量
if not num:
break
else:
print(f'此文件夹共分配{summ}张照片', f"{f'还剩{resm}张照片待分配':.^30}")
#dic = {} # 存放文件夹名和文件夹内文件名的键值对
for i in range(summ):
lit.append(file_path()[i])
dic[name]=lit
new_path=osp.join(path,name)
if not osp.exists(new_path):
os.mkdir(new_path)
for file in lit:
shutil.move(file,new_path)
print()
sr = input("是否继续创建文件夹?(y/n): ")
if sr == "y": # 继续添加
continue
else:
src = osp.basename(path) + "-已分类"
dst = osp.join(osp.dirname(path), src)
os.rename(path, dst) # 重命名已分类
print(f"{'照片已全部分好':.^34}")
break
fenlei()
|