【发布时间】:2017-06-15 10:55:21
【问题描述】:
我试图从输出控制台窗口中只清除最后几行。为了实现这一点,我决定使用创建秒表,我已经实现了在键盘中断和输入键按下时中断它会创建圈,但我的代码只创建圈一次,我当前的代码正在清除整个输出屏幕。
clear.py
import os
import msvcrt, time
from datetime import datetime
from threading import Thread
def threaded_function(arg):
while True:
input()
lap_count = 0
if __name__ == "__main__":
# thread = Thread(target = threaded_function)
# thread.start()
try:
while True:
t = "{}:{}:{}:{}".format(datetime.now().hour, datetime.now().minute, datetime.now().second, datetime.now().microsecond)
print(t)
time.sleep(0.2)
os.system('cls||clear') # I want some way to clear only previous line instead of clearing whole console
if lap_count == 0:
if msvcrt.kbhit():
if msvcrt.getwche() == '\r': # this creates lap only once when I press "Enter" key
lap_count += 1
print("lap : {}".format(t))
time.sleep(1)
continue
except KeyboardInterrupt:
print("lap stop at : {}".format(t))
print(lap_count)
当我跑步时
%run <path-to-script>/clear.py
在我的 ipython shell 中,我只能创建一圈,但它不会永久保留。
【问题讨论】:
-
this 帖子的答案对 Python 2、Python 3、IPython notebook 和 jupyter notebook 的案例有很好的解释和选择。
标签: python python-3.x ipython python-3.4