图像排序器在python中创建日期

时间:2014-09-16 18:25:45

标签: python image sorting properties

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

1 个答案:

答案 0 :(得分:0)

这是一些快速的代码,可以帮助您找到正确的方向。它遍历文件夹中的所有文件,并将它们移动到两个单独的子文件夹中。您可以将其修改为使用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)