我正在尝试在当前目录中查找在 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/