动态 Python 倒数计时器
Posted
技术标签:
【中文标题】动态 Python 倒数计时器【英文标题】:Dynamic Python Countdown Timer 【发布时间】:2016-01-27 00:15:53 【问题描述】:这里是初学者的业余 Python 脚本编写者(抱歉,如果我无意中使用了不正确的术语)。我正在寻找在 Python 中创建一个倒数计时器,它考虑到未来的设定日期和当前日期。
例如,如果我想制作一个“死亡时钟”(即倒数计时器,可以倒计时到我的估计死亡日期),则计时器需要从当前日期倒计时到我估计的死亡日期年份将来,后者将被硬编码到 Python 脚本中。
我想我必须做一些事情,比如获取当前日期,将其转换为秒,从死亡日期中减去它(这也将转换为秒),然后将差值转换为年月-days-hours-minutes-seconds 格式,然后将是倒计时计时器的起点(计时器最好需要能够在倒计时时显示年、月、日、小时、分钟和秒)。
有没有一种相对简单的方法可以让计时器显示在 Linux 终端中,或者这样做会很痛苦?
提前感谢您的帮助。
【问题讨论】:
在某些终端中,在将新文本放在同一个位置之前删除旧文本可能会出现问题。 【参考方案1】:您可以获得两次之间的增量:
from datetime import datetime
my_death = datetime(2044, 3, 24)
lacking = datetime.now() - my_death
这个lacking
对象有一些您可以使用的有用属性,例如lacking.days
和lacking.total_seconds()
。
【讨论】:
【参考方案2】:您必须告诉终端覆盖当前行而不是打印到新行。 这仅适用于正确处理控制字符的系统。它可以在 Windows 命令提示符下运行,我刚刚在 OSX 上进行了测试,但在 Idle 中没有。
import sys,time
def msg(txt):
sys.stdout.write(txt)
sys.stdout.flush()
for sec in range(10):
time.sleep(1)
m = "%2d seconds" % (10-sec)
msg(m + chr(13))
关于时间操作,您可以使用datetime
模块来计算和格式化日期间隔(例如+3 天)。 https://docs.python.org/2/library/datetime.html
【讨论】:
以上是关于动态 Python 倒数计时器的主要内容,如果未能解决你的问题,请参考以下文章