【问题标题】:Image sorter by created date in python按python中创建日期的图像分类器
【发布时间】:2014-11-10 15:01:42
【问题描述】:

我需要制作一个程序来对目录中的所有 .jpg 文件进行排序,或者只是对目录中的所有文件进行排序(因为它们都是 jpg,所以不必专门针对 jpg),这取决于制作日期,将它们放在两个单独的文件夹中:例如,2012 年之前在一个文件夹中,2012 年之后在另一个文件夹中……我不知道该怎么做的是如何让程序通读文件夹中所有文件/.jpgs 的属性,之后我想我知道该怎么做:将日期存储在一个变量中,创建两个文件夹,然后我在想一个 if 语句来传输文件比较他们的日期。但是我如何告诉程序为每个文件执行此操作,无论它们有多少?...因为我不知道文件夹中有多少文件。谢谢!!!

【问题讨论】:

    标签: python image sorting properties


    【解决方案1】:

    这里有一些快速代码可以帮助您找到正确的方向。它遍历文件夹中的所有文件并将它们移动到两个单独的子文件夹中。您可以修改它以使用 modify-date 而不是 create-date,或者如果需要仅获取 .jpg 文件。

    import os, datetime
    
    folder_name = "MY_PATH"
    for file_name in os.listdir(folder_name):
        file_name_full = os.path.join(folder_name, file_name)
        if not os.path.isfile(file_name_full):
            continue
        timestamp = os.path.getctime(file_name_full)
        dt = datetime.datetime.fromtimestamp(timestamp)
        # print out the datestamp
        print dt
    
        # if you now want to put them into subfolders based on the year 2012 
        # you can do something like the following
        yr = dt.year
        subfolder_name = ""
        if yr < 2012:
            subfolder_name = "before 2012"
        else:
            subfolder_name = "2012 and after"
        subfolder_name_full = os.path.join(folder_name, subfolder_name)
        new_file_name_full = os.path.join(subfolder_name_full, file_name)
        # I assume your folders are premade. If not, you can do a quick-and-dirty mkdir here
    
        print "Moving %s -> %s" % (file_name_full, new_file_name_full)
        os.rename(file_name_full, new_file_name_full)
    

    【讨论】:

      猜你喜欢
      • 2016-03-03
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 1970-01-01
      • 2021-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多