작은 스크립트가 있는데 지정된 시간 ("commandTime")에 시스템 명령을 실행 한 다음 나중에 지정된 시간 ("stopTime")을 종료하는 데 사용하려고했습니다. . 그러나 스크립트를 실행할 때 "if"문 아래에서 명령을 실행하지 않습니다. (때로는 실행되고 때로는 실행되지 않을 것입니다.)if 문에서 Python이 time.mktime 조건에서 실행되지 않음
나는 총 바보가 아니며 (배심원은 여전히 그 ...) 시간 변수를 합리적으로 설정하고 있다고 가정하고, 스크립트는 print 명령을 실행해야합니다 'time.mktime (time.localtime())'이 형식화 된 'commandTime'변수보다 크거나 같으면 if 문 내부에 있습니다.
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
스크립트는 time.localtime()이 다음과 같을 때까지 while 문을 반복해야합니다. stopTime보다 크거나, 각 루프의 if 조건을 점검하십시오. time.localtime()이 commandTime보다 크거나 같으면 print 명령을 실행해야합니다.
while 루프와 if 문 모두에서 time.mktime()을 사용하여 datetime 객체를 Unix 시간 (생각하는 float)으로 변환합니다.
while 루프는 항상 매번 안정적으로 작동하며 대부분의 시간을 실행하지 않는 것은 if 문뿐입니다.
데비안 스퀴즈 32 비트에서 파이썬 2.7.3을 실행 중입니다.
내 질문은 다음과 같습니다. 조건이 충족 될 때 if 문을 실행하지 못하게하는이 스크립트에서 나는 무엇을 잘못하고 있습니까?
감사합니다.
저는이 문제를 Windows에서 2.7.3 버전에서 시도해 보았습니다. 또한 명령 시간에 맞는 날짜를 설정했는지 확인하십시오 (예 : 2013-05-03) –
정확합니다. Nolan, 내가 붙여 넣은 코드는 정확하지만 잘못 입력했습니다. 당신은 비교가 정확합니다 : commandTime <= time.localtime() <= stopTime. – spacestout