python - 从命令行参数转换时间

标签 python

我正在尝试在当前目录中查找在 x 分钟内更改的所有文件。 x 将是用户在运行脚本时给出的命令行参数。

我在将命令行参数转换为适当的秒数时遇到问题:

这是我所拥有的

import os,sys,time

var =  int(sys.argv[1])
past = time.time() - var * 60

result = []
dir = os.getcwd()

for p, ds, fs in os.walk(dir):
    for fn in fs:
      filepath = os.path.join(p, fn)    
      status = os.stat(filepath).st_mtime
      if os.path.getmtime(filepath) >= past:
             result.append(filepath)
             print result

这似乎工作正常,但我不明白时间是如何运作的。如果用户输入 5 分钟,那么我乘以 5 * 60,得到 300 - 然后再次比较状态并报告回来。

这是正确的吗?

最佳答案

关于我不明白时间是如何运作的,请引用文档:

  • time.time() :以 float 形式返回自纪元以来的时间(以秒为单位)。
  • os.path.getmtime() :返回值是一个数字,给出自纪元以来的秒数(请参阅时间模块)。

所以程序正在做的是从当前时间(以秒为单位)减去一定的秒数,然后检查在此之后是否有文件被修改(os.path.getmtime(filepath) >=过去).

关于python - 从命令行参数转换时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33670308/

相关文章:

python - 避免在 scikit learn StandardScaler 中缩放二进制列

python - 如何保护 python 类变量免受邪恶程序员的侵害?

python - SQLite3 Python : executemany SELECT

python - 在heroku上部署我的django-rest项目的问题

python - 高维度的 Einsum

python - 在积极的后视中使用积极的前瞻?

python - 在更新文件时使用 Python csv 模块

python - 表单初始数据不显示在模板中

python - 文件处理中的文件长度

python - 如何表示多级组合?