【发布时间】:2017-09-11 16:11:15
【问题描述】:
我正在尝试编写一个 Python 程序来跟踪股票市场的价格并将其输出给用户,通过 stderr 刷新同一行,这是代码的简化版本(使用 randint 只是为了检查程序是否正在执行东西):
import random
import schedule
import time
import sys
def printran():
a = "\rFirst Line is: " + str(random.randint(1,10))
sys.stderr.write(a)
schedule.every(2).seconds.do(printran)
while True:
schedule.run_pending()
time.sleep(1)
我的问题是:
a) 如何“刷新”多行的控制台输出?
我尝试过类似的东西:
a = "\rFirst Line is: " + str(random.randint(1,10)) + "\n\rSecond Line is: " + str(random.randint(2,20))
但输出是一团糟,显然 \n 命令总是会生成一个新行
b) 由于 while 函数并没有真正结束我不能做其他事情,我需要使用多线程吗?
c) 找到一个尽可能简单、便携且与操作系统无关的解决方案(必须在 Linux、OSX、Win 上工作)。
【问题讨论】:
标签: python terminal console console-application scheduling