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

标签 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] 进行比较,然后将 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/

相关文章:

python多重处理比正常慢-计算太微不足道?

list - CMake - 我应该如何删除以空格分隔的列表中的重复项?

list - Haskell 中的 [] (列表构造函数)是什么?

list - 如何展平斯卡拉的 future list

python - 在 fastapi python 中使 Depends 可选

python - wxpython-phoenix 需要 osx/ipython/pycharm 上的 python 框架

python - 如何让 python 正则表达式返回所有不匹配的文本?

python - 在 tensorflow 中使用一维 CNN 对可变长度的时间序列进行分类

asp.net-mvc - 如何在 MVC 3 中将列表或集合从 View 返回到 Controller ?

python - 如何找到与数字列表对应的名称?