重命名名称包含的图片每个新的一天_1

时间:2013-01-03 09:40:48

标签: python list

我想重命名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]与之比较,但是它开始跳过所有其他元素。非常感谢您的帮助

1 个答案:

答案 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)))