Python: 在需要的时间停止
Python: Stop at desired time
我这里有问题。我想在需要的时间停止 print
命令。我想出了一些代码,它仍然在循环。这里的代码,
import time
t = time.strftime("%H%M%S")
while ti:
print(time.strftime("%H%M%S"))
time.sleep(1)
if t = ("140000"): #just example of time to stop print
break
谢谢
试试这个:
import time
while ti:
t = time.strftime("%H%M%S")
print(time.strftime("%H%M%S"))
time.sleep(1)
if t = ("140000"): #just example of time to stop print
break
t = time.strftime("%H%M%S")
只在循环之前执行一次,所以t
的值永远不会改变。
你的方法是最差的检查时差的方法; python 的 datetime
框架允许减去时间戳,因此,您可以检查时间,因为其他事情很容易发生,而无需进行任何字符串比较...
这会起作用
import time
t = time.strftime("%H%M%S")
while t:
t = time.strftime("%H%M%S")
print(time.strftime("%H%M%S"))
time.sleep(1)
if t == ("140000"): #just example of time to stop print
break
您的代码中存在一些错误
while ti: -- > while t:
if t = ("140000"): --> 如果 t== ("140000"):
- 你错过了这一行 t = time.strftime("%H%M%S")
time.sleep(1)
可能会睡得少于或多于一秒,因此 t == "140000"
是不够的。
要在给定的本地时间停止循环:
import time
from datetime import datetime
stop_dt = datetime.combine(datetime.now(), datetime.strptime("1400", "%H%M").time())
stop_time = time.mktime(stop_dt.timetuple())
while time.time() < stop_time:
print(time.strftime("%H%M%S"))
time.sleep(max(1, (stop_time - time.time()) // 2))
time.time()
returns "seconds since the epoch" -- 与字符串比较不同,它在午夜工作。
睡眠间隔为剩余时间的一半或一秒(取大者)。
time.mktime()
如果停止时间在夏令时结束转换 ("fall back") 期间且本地时间不明确(基于字符串的解决方案),则 return 可能会产生错误结果在这种情况下可能会停止两次)。
我这里有问题。我想在需要的时间停止 print
命令。我想出了一些代码,它仍然在循环。这里的代码,
import time
t = time.strftime("%H%M%S")
while ti:
print(time.strftime("%H%M%S"))
time.sleep(1)
if t = ("140000"): #just example of time to stop print
break
谢谢
试试这个:
import time
while ti:
t = time.strftime("%H%M%S")
print(time.strftime("%H%M%S"))
time.sleep(1)
if t = ("140000"): #just example of time to stop print
break
t = time.strftime("%H%M%S")
只在循环之前执行一次,所以t
的值永远不会改变。
你的方法是最差的检查时差的方法; python 的 datetime
框架允许减去时间戳,因此,您可以检查时间,因为其他事情很容易发生,而无需进行任何字符串比较...
这会起作用
import time
t = time.strftime("%H%M%S")
while t:
t = time.strftime("%H%M%S")
print(time.strftime("%H%M%S"))
time.sleep(1)
if t == ("140000"): #just example of time to stop print
break
您的代码中存在一些错误
while ti: -- > while t:
if t = ("140000"): --> 如果 t== ("140000"):
- 你错过了这一行 t = time.strftime("%H%M%S")
time.sleep(1)
可能会睡得少于或多于一秒,因此 t == "140000"
是不够的。
要在给定的本地时间停止循环:
import time
from datetime import datetime
stop_dt = datetime.combine(datetime.now(), datetime.strptime("1400", "%H%M").time())
stop_time = time.mktime(stop_dt.timetuple())
while time.time() < stop_time:
print(time.strftime("%H%M%S"))
time.sleep(max(1, (stop_time - time.time()) // 2))
time.time()
returns "seconds since the epoch" -- 与字符串比较不同,它在午夜工作。
睡眠间隔为剩余时间的一半或一秒(取大者)。
time.mktime()
如果停止时间在夏令时结束转换 ("fall back") 期间且本地时间不明确(基于字符串的解决方案),则 return 可能会产生错误结果在这种情况下可能会停止两次)。