【发布时间】:2013-03-06 02:25:18
【问题描述】:
我有一个小脚本,用于在指定时间(“commandTime”)执行系统命令,然后在指定时间退出(“stopTime”)。但是,当我运行脚本时,它往往永远不会执行“if”语句下的命令。 (它有时会执行,有时不会。)
假设我不是一个彻头彻尾的白痴(陪审团仍然在这个问题上......)并且正在合理地设置时间变量,脚本应该在 if 语句中执行 print 命令时 'time.mktime(time.localtime ())' 等于或大于格式化的 '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()
脚本应该循环遍历 while 语句,直到 time.localtime() 等于或大于 stopTime,检查每个循环的 if 条件。一旦 time.localtime() 大于或等于 commandTime,就应该执行打印命令。
我正在使用 time.mktime() 将 datetime 对象转换为 Unix 时间(我认为是浮点数),以便在 while 循环和 if 语句中进行比较。
while 循环每次都能可靠地工作,只有 if 语句大部分时间执行失败。
我在 Debian Squeeze 32 位上运行 python 2.7.3。
我的问题是:我在这个脚本中做错了什么导致 if 语句在满足条件时不执行?
谢谢!
【问题讨论】:
标签: python if-statement time conditional-statements mktime