是否使用Python更新以前打印的行(在CLI中)?

是否使用Python更新以前打印的行(在CLI中)?,python,python-2.7,command-line-interface,Python,Python 2.7,Command Line Interface,我正在用Python开发一个命令行游戏,我想实现一个函数,为玩家的回答设置一个时间限制。基本上,我想做的是更新打印后的第一行: "5.." "5 + 3 = ?" 致: "5..4..3..2..1..Lost" "5 + 3 = ?" 5秒后 printnum,end='\r' end=关键字是此操作的原因,打印以换行符结尾,\n但这可以替换为任何字符串,例如以回车符结束该行,而是将光标返回到当前行的开头。您需要使用python2.7从u_future __导入

我正在用Python开发一个命令行游戏,我想实现一个函数,为玩家的回答设置一个时间限制。基本上,我想做的是更新打印后的第一行:

    "5.."
    "5 + 3 = ?"
致:

   "5..4..3..2..1..Lost"
   "5 + 3 = ?"
5秒后

printnum,end='\r'

end=关键字是此操作的原因,打印以换行符结尾,\n但这可以替换为任何字符串,例如以回车符结束该行,而是将光标返回到当前行的开头。您需要使用python2.7从u_future __导入print_函数

至于同时接收输入,您需要使用模块并在线程中打印更新计数器

import time
from _thread import *
def printcount(secs):
    i=5
    while i != 0:
        print(i, end='\r')
        i -= 1
        time.sleep(secs)

start_new_thread(printcount, (1))

如果您正在开发一款游戏,那么您需要完全控制控制台输出,而不仅仅是当前行。您需要类似于Python内置的诅咒模块的东西

看看我用curses创建的,它修改了整个屏幕上的控制台输出,这可能会有所帮助。

/b是一个退格字符,/r是Linux中的回车符。如果没有打印换行符,只需打印\b*字符号,或打印回车符,并确保第二个字符串至少与第一个字符串一样长。看看Python的curses模块,它允许您在基于文本的应用程序中任意移动光标。我不确定在用户输入期间如何实现这些定时消息,但功能可能就在那里。
import time
from _thread import *
def printcount(secs):
    i=5
    while i != 0:
        print(i, end='\r')
        i -= 1
        time.sleep(secs)

start_new_thread(printcount, (1))