3 回答
TA贡献1777条经验 获得超10个赞
这是适用于Python 2/3的Python模块,只需使用几行代码即可解决这种情况; D
重印-Python 2/3的简单模块,用于在终端中打印和刷新多行输出内容
您可以简单地将该output实例视为普通实例dict或list(取决于您使用的模式)。当您在output实例中修改该内容时,终端中的输出将自动刷新:D
为了您的需要,下面是代码:
from reprint import output
import time
if __name__ == "__main__":
with output(output_type='dict') as output_lines:
for i in range(10):
output_lines['Moving file'] = "File_{}".format(i)
for progress in range(100):
output_lines['Total Progress'] = "[{done}{padding}] {percent}%".format(
done = "#" * int(progress/10),
padding = " " * (10 - int(progress/10)),
percent = progress
)
time.sleep(0.05)
TA贡献1854条经验 获得超8个赞
最终,如果您要操作屏幕,则需要使用基础的OS库,通常是:
在Linux或OSX上进行curses(或terminfo / termcap数据库跟踪的基础终端控制代码)
Windows上的win32控制台API。
如果您不介意使用一个操作系统或乐于在Windows上安装第三方库,那么@codeape的答案已经为您提供了许多选择。
但是,如果您希望可以简单地进行pip安装的跨平台解决方案,则可以使用asciimatics。作为开发此软件包的一部分,我必须解决环境之间的差异,以提供可在Linux,OSX和Windows上运行的单个API。
对于进度条,可以使用此代码使用本演示中所示的BarChart对象。
添加回答
举报