我想重命名 windows 目录中的图片。文件名应该是这样的
2012-12-01_1 2012-12-01_2 2012-12-02_1 等等
对于每个新日期,新序列必须以 _1 开头。我尝试以我能想到的所有可能的方式比较列表元素,但没有成功。
我的时间来自:
datetime.date.fromtimestamp(os.path.getmtime(os.path.join(target,f)))
where f= each file
我创建的列表如下所示: ['IMG_0288.JPG', 'IMG_0289.JPG', 'IMG_0290.JPG', 'IMG_0291.JPG', 'IMG_0292.JPG', 'IMG_0293.JPG', 'IMG_0294.JPG', 'IMG_0295.JPG', ' IMG_0296.JPG', 'IMG_0297.JPG', 'IMG_0298.JPG', 'IMG_0299.JPG', 'IMG_0300.JPG', 'IMG_0301.JPG', 'IMG_0302.JPG', 'IMG_0303.JPG', 'IMG_0304. JPG', 'IMG_0305.JPG', 'IMG_0306.JPG', 'IMG_0315.JPG', 'IMG_0323.JPG', 'IMG_0324.JPG', 'IMG_0325.JPG', 'IMG_0326.JPG', 'IMG_0327.JPG' , 'IMG_0328.JPG', 'IMG_0330.JPG', 'IMG_0331.JPG', 'IMG_0333.JPG', 'IMG_0334.JPG', 'IMG_0335.JPG', 'IMG_0336.JPG', 'IMG_0339.JPG', ' IMG_0340.JPG', 'IMG_0341.JPG', 'IMG_0342.JPG', 'IMG_0343.JPG', 'IMG_0344.JPG']
我尝试将 f 与 dir[0] 进行比较,然后将 dir[0] 删除,但它开始跳过所有其他元素。非常感谢您的帮助
最佳答案
import itertools as it
import datetime
import os
get_day = lambda x: datetime.date.fromtimestamp(os.path.getmtime(os.path.join(target,f)))
for k, v in it.groupby(sorted(files, key=get_day), key=get_day):
for i, f in enumerate(v, 1):
os.rename(os.path.join(target, f),
os.path.join(target, '{0:%Y-%m-%d}_{}.JPG'.format(k, i)))
关于python - 重命名包含名称的图片。 _1 每一个新的一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14136254/