我想重命名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]进行比较,然后将cut dir [0]与之比较,但是它开始跳过所有其他元素。非常感谢您的帮助
答案 0 :(得分:1)
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)))