在 Python 中:检查文件修改时间是否早于特定日期时间

新手上路,请多包涵

我用 c# 编写了这段代码来检查文件是否过时:

  DateTime? lastTimeModified = file.getLastTimeModified();
        if (!lastTimeModified.HasValue)
        {
            //File does not exist, so it is out of date
            return true;
        }
        if (lastTimeModified.Value < DateTime.Now.AddMinutes(-synchIntervall))
        {
            return true;
        } else
        {
           return false;
        }

我怎么用python写这个?

我在 python 中试过这个。

 statbuf = os.stat(filename)
if(statbuf.st_mtime < datetime.datetime.now() - self.synchIntervall):
    return True
 else:
    return False

我得到以下异常

message str: unsupported operand type(s) for -: 'datetime.datetime' and 'int'

原文由 Luke 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 467
2 个回答

您要使用 os.path.getmtime 函数(结合 time.time 一个)。这应该给你一个想法:

 >>> import os.path as path
>>> path.getmtime('next_commit.txt')
1318340964.0525577
>>> import time
>>> time.time()
1322143114.693798

原文由 mac 发布,翻译遵循 CC BY-SA 3.0 许可协议

@E235 在接受的答案中的评论对我来说非常有效。

这里是格式化的;

 import os.path as path
import time

def is_file_older_than_x_days(file, days=1):
    file_time = path.getmtime(file)
    # Check against 24 hours
    return ((time.time() - file_time) / 3600 > 24*days)

原文由 Jonathan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题