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