我有一个小脚本,用于在指定时间(“commandTime”)执行系统命令,然后在指定时间退出(“stopTime”)。但是,当我运行脚本时,它往往永远不会执行“if”语句下的命令。(它有时会执行,有时不会。)
假设我不是一个彻头彻尾的白痴(陪审团仍然没有解决......)并且正在合理地设置时间变量,脚本应该在'time.mktime(time.localtime())时执行if语句中的打印命令' 等于或大于格式化的 'commandTime' 变量。
以下是相关代码的摘录:
import time
commandTime = time.strptime('2013-03-01 05:00:00', "%Y-%m-%d %H:%M:%S")
stopTime = time.strptime('2013-03-01 05:10:00', "%Y-%m-%d %H:%M:%S")
while (time.mktime(time.localtime()) <= time.mktime(stopTime)):
if (time.mktime(time.localtime()) >= time.mktime(commandTime)):
print "Green team go"
time.sleep(100)
假设设置了 stopTime 和 commandTime 变量,因此当您执行脚本时,以下情况为真: time.localtime() < commandTime < stopTime
脚本应该循环遍历 while 语句,直到 time.localtime() 等于或大于 stopTime,检查每个循环的 if 条件。一旦 time.localtime() 大于或等于 commandTime,就应该执行打印命令。
我正在使用 time.mktime() 将 datetime 对象转换为 Unix 时间(我认为是浮点数),以便在 while 循环和 if 语句中进行比较。
while 循环每次都可靠地工作,只有 if 语句在大多数情况下无法执行。
我在 Debian Squeeze 32 位上运行 python 2.7.3。
我的问题是:我在这个脚本中做错了什么导致 if 语句在满足条件时不执行?
谢谢!