我有一个目录,里面装满了每5分钟生成一次的文件。当我在cmd提示符下执行ls -l时,我可以看到文件及其上次修改时间。
我需要以编程方式获取在最后N分钟内加上时间戳的文件列表。怎么做?
答案 0 :(得分:2)
使用os.path.getmtime
或os.path.getctime
获取文件的修改/创建时间。
import os
import time
dirpath = '/path/to/dir'
past = time.time() - 2*60*60 # 2 hours
result = []
for p, ds, fs in os.walk(dirpath):
for fn in fs:
filepath = os.path.join(p, fn)
if os.path.getmtime(filepath) >= past:
result.append(filepath)
答案 1 :(得分:0)
注意:falsetru发布的答案从dirpath向下遍历所有子目录。要对特定目录执行此操作,在这种情况下为dirpath,请使用
import os
import time
dirpath = '/path/to/dir'
past = time.time() - 2*60*60 # 2 hours
result = []
result = [ f for f in listdir(dirpath) if ((isfile(join(dirpath,f))) and (os.path.getmtime(join(dirpath,f)) >= past)) ]