这是一个更复杂的问题,但本质上仍然是使用for循环创建字典。我想在计算机上创建一个包含所有照片/视频的数据库——有成千上万张图片和视频,并为每个照片创建一个字典记录,使用照片/电影的名称来标识记录。这样,我就可以拥有唯一的字典记录,从中创建数据库。
实现步骤:
1)使用另一个
StackOverflow答案,稍微修改后,我得到了文件列表及其修改日期(在Windows上更好地反映了它们被拍摄的日期,而不是创建日期,后者是文件在Windows机器上创建的日期)。
from stat import S_ISREG, ST_MTIME, ST_MODE
import os, sys, time
destdir="C:/Pictures/jiphone/jiPhone-2017"
entries = (os.path.join(destdir, fn) for fn in os.listdir(destdir))
entries = ((os.stat(path), path) for path in entries)
entries = ((stat[ST_MTIME], path)
for stat, path in entries if S_ISREG(stat[ST_MODE]))
2) 然后我创建了字典
dict_J_iphone_2017=dict()
3) 然后在一个 For 循环中,我从文件名中制作了 recFile(文件记录),删除了句点(但您可以从任何循环中制作它)。
for cdate, path in sorted(entries):
fullDate=time.ctime(cdate)
basePath=os.path.basename(path)
recFile=basePath.replace(".","")
etc
4) 然后我为每个照片/电影创建了字典条目
dict_J_iphone_2017[recFile]={'name': recName, 'date': recDate, 'time':recTime, 'day': recDay,'tags': [], 'folder': recFolder, 'comment': recComment, 'rating': 0}
我可以通过输入文件的实际名称来引用字典中的每个项目,例如:
print(dict_J_iphone_2017['JiP6_1291PNG']
希望这有所帮助。
for idx, item in enumerate(list): d[index] = item
- FCod = { k: v for k, v in enumerate(list) }
。该语句用于将列表转换为字典,并将列表中的每个元素作为字典的键,对应的索引作为字典的值。 - Alden