我正在尝试获取最近存放在我的目录中的文件。以下是我正在使用的代码。
filelist = max(glob.iglob(path_to_midterm+"\\*.zip"), key=os.path.getctime)
这段代码给了我最近的文件。如果在目录中写入多个文件,它仍然给我1个文件。所以,我想要的是如果同时写入多个文件来获取所有文件。我如何获取所有文件?
答案 0 :(得分:1)
我获取所有文件,找出最旧的文件,并使用所有文件在此时间的十秒内:
filenames_and_times = [ (filename, os.path.getctime(filename))
for filename in glob.iglob(path_to_midterm+"\\*.zip") ]
time_of_last = max(filetime for (_, filetime) in filenames_and_times)
print [ filename
for (filename, filetime) in filenames_and_times
if filetime > time_of_last - 10.0 ]
或者,您可以按时间对文件名列表进行排序,并使用最后四个条目(如果有意义,则取决于您的用例):
filenames_and_times.sort(key=lambda (f, t): t)
print filenames_and_times[-4:]