欢迎访问宙启技术站
智能推送

Python中curses库实现终端倒计时器

发布时间:2024-01-03 20:02:16

Python中的curses库可以用来创建终端应用程序,包括倒计时器。倒计时器是指在指定的时间内由大到小依次减少的计时器。下面是一个使用Python的curses库实现终端倒计时器的示例代码,具体步骤如下:

1. 导入必要的库:

import curses
import time
import threading

2. 定义全局变量:

count_down = 60  # 倒计时的总时间,单位为秒
window = None  # curses窗口对象

3. 定义倒计时函数:

def countdown():
    global count_down
    while count_down > 0:
        count_down -= 1
        time.sleep(1)

4. 定义绘制倒计时的函数:

def draw_countdown(stdscr):
    global count_down
    global window

    window = stdscr
    stdscr.clear()
    stdscr.refresh()

    stdscr.addstr(0, 0, "倒计时器示例")
    stdscr.addstr(1, 0, "按q键退出")
    stdscr.addstr(3, 0, "倒计时: ")

    while count_down > 0:
        stdscr.addstr(3, 10, str(count_down))
        stdscr.refresh()
        time.sleep(1)
        stdscr.addstr(3, 10, " " * len(str(count_down)))
        stdscr.refresh()

5. 定义主函数:

def main(stdscr):
    global window

    # 设置终端属性
    curses.curs_set(0)
    stdscr.nodelay(1)

    # 创建并运行倒计时线程
    count_thread = threading.Thread(target=countdown)
    count_thread.start()

    # 绘制倒计时
    draw_countdown(stdscr)

    # 等待倒计时线程结束
    count_thread.join()

    # 退出程序
    window.clear()
    window.refresh()
    curses.napms(3000)

6. 运行程序:

if __name__ == "__main__":
    curses.wrapper(main)

在运行上述代码后,会在终端中显示一个倒计时器,倒计时从60开始,每秒减少1,直到倒计时为0为止。按下q键退出程序。

这是一个简单的终端倒计时器的实现示例,你可以根据需要自定义样式和计时逻辑。