每个人都熟悉照片和视频的废墟,这些废墟在从设备复制后已经存在了多年。
对于iphone,ipad尤其如此,当直接复制(没有iTunes)时,ipad会创建
媒体内容存放区。您如何按年份和月份对它们进行分类?
是的,有同步,是的,您可以一次对所有内容进行排序。但是……
有人不愿触摸任何东西,因为观察到了垃圾填埋场的统一性,有人胆小地尝试分解至少几年来积累的一切。
毫无疑问,通过资源管理器,使用表格视图,手动分散所有这些内容并不困难,但是您开始查看旧照片时,过程将会延迟。
因此,我们将编写一个简单的程序,将文件夹中的文件分解成几个月,其中包含数月:
该程序本身将确定日期,“看”文件的修改日期:
为什么我们使用修改日期,而不是文件创建日期?
通常,与同名女士相比,她更正确地指示文件的日期。
开始导入模块:
import os,time
import datetime
import shutil
我们建议用户将路径(窗口)复制到包含文件的文件夹中:
p=input(' . : E:/\1')
os.chdir(p)
让我们介绍一下创建从01到12个月的文件夹的功能(原谅我缺少f'行):
# 01 12
def d():
for x in range (1,13):
if x>9:
if not os.path.exists(str(x)):
os.makedirs(str(x))
else:
if not os.path.exists('0'+str(x)):
os.makedirs('0'+str(x))
以下功能将处理从照片/视频文件获得的日期:
def mod_date(file):
t = os.path.getmtime(file)
return datetime.datetime.fromtimestamp(t)
现在,遍历该文件夹,该程序将收集所有文件扩展名,并同时
确定文件的年份。每年,将创建自己的文件夹,并在其中
创建带有月份的文件夹:
a=[] #['AAE', 'MOV', 'JPG', 'PNG']
for root, dirs, files in os.walk(p):
for file in files:
if file[-3:] not in a:
a.append(file[-3:])
if file[-3:] in a:
year=str(mod_date(file))[:10][:4]
if not os.path.exists(year):
os.makedirs(year)
os.chdir(p+'/'+year)
d()
os.chdir(p)
*因此,您可以将具有完全不同(任何)扩展名的文件分散到文件夹中,而不仅仅是jpeg,mov,mkv。
让我们再次浏览带有照片转储的文件夹,现在将照片传输到相应的新创建的文件夹中:
try:
for root, dirs, files in os.walk(p):
for file in files:
if file[-3:] in a:
year=str(mod_date(file))[:10][:4]
month=str(mod_date(file))[:10][5:7] #
shutil.move(file, year+'/'+month+'/'+file) #
except EnvironmentError:
(' ')
由于程序会因错误而终止,而不会在循环中找到最后一个文件,这不会影响程序的正确执行,因此使用try以外的拐杖进行操作,这会使在控制台中发红的印象深刻的人保持警惕。
PS:该帖子并不伪装成科学的,但也许可以帮助某人击败照片/视频转储。下载
程序。