2012-03-05 116 views
0

我正在尝试编写一个基本程序,该程序遍历目录中的文件并检查在上一个xxxxxx中修改的文件。 Unfortunatley datetime不允许我迭代到int。无法将datetime.datetime与int相比较; datetime到unix时间戳

file_list_attr = sftp.listdir_attr('/Path') 

for f in file_list_attr: 
    print "name=%s, modified date=%s, size=%s" % (f.filename, f.st_mtime,f.st_size) 

mt = f.st_mtime 
now= dt.datetime.now() 
delta = dt.timedelta(minutes=2120) 
while mt > dt.datetime.now() - delta: 

#while f.st_mtime == now-dt.timedelta(days=1): 
    print 'You have something here' 
else: 
    print 'nada' 
+1

检查/修复你的缩进 - python是缩进敏感的(不确定你是否故意缩进这种方式,或者如果它是因为试图把它放在stackoverflow上)。 – 2012-03-05 01:31:54

+3

如果您的其他问题已得到解答,请考虑返回并标记这些答案,以便人们知道他们已得到答案。 – thegrinner 2012-03-05 01:33:32

回答

5

由于您正在比较unix时间戳(st_mtime),请使用time.time()和秒来代替尝试使用datetime。如果您确实想使用日期时间,则可以使用fromtimestamp方法将st_mtime转换为创建与日期时间相当的东西。

+0

+1这些都是合理的方法。 – 2012-03-05 02:00:24