背景
身边很多做摄影、工作室的朋友,平常观察他们的工作流,发现除了为每一件产品拍N张图、视频的本职工作内容外,还有一步特别耗费时间的工作,就是把相机内存卡内一次拍出的上百上千个内容按规律拖拽进指定的文件夹进行分配,本质很简单的一件事情,但顶不住量大。
场景举例
一件衣服需要拍9图,但这次有100件衣服,一个场景或者模特一个动作,连续拍100件,再换下一个场景循环100件。
其中的逻辑规律显而易见,所以开发了这么一款小工具给大家一键使用,10秒完成1小时的工作。
难点
1.最开始读取源资源文件时,用的是sorted()方法,结果对1、2、3、4……这种简单规律的文件名称排序都始终无法像windows资源管理器中一样排序,不符合人类直觉,更不用说相机设备中拍出来的文件名都会有很多英文数字夹杂,但始终都是符合windows的排序规则的,最终使用
natsort.natsorted
对文件列表进行自然排序。
- 对于 "按名称正序" 和 "按名称倒序",使用
natsort.natsorted
函数进行排序。- 对于 "按时间正序" 和 "按时间倒序",使用
sorted
函数并结合os.path.getmtime
对文件的修改时间进行排序。
2.朋友举例,某些场景下,会出现一件衣服产品连续拍2张的情况,也就是说,第1~200个文件,每2个文件,属于1个衣服产品,比如模特穿着衣服,先拍正面,随机拍了背面。
这部分的循环逻辑,梳理了2个小时😅😅😅
地址
git地址https://gitee.com/tenkkk/media_classifier
效果演示: