当前位置: 首页 > 面试题库 >

使用python动态终端打印

谢承
2023-03-14
问题内容

像hellanzb这样的某些应用程序具有一种以动态刷新数据的形式打印到终端的方式,类似于top()。

python中最好的方法是什么?我已经阅读了日志记录和诅咒,但是不知道该使用什么。我正在创建top的重新实现。如果您还有其他建议,我也欢迎他们。


问题答案:

如果只需要更新一行(例如,创建进度条),最简单的方法是使用'\r'(回车)和sys.stdout

import sys
import time

for i in range(10):
    sys.stdout.write("\r{0}>".format("="*i))
    sys.stdout.flush()
    time.sleep(0.5)

如果您需要支持移动指针等的适当控制台UI,请使用curses标准库中的模块:

import time
import curses

def pbar(window):
    for i in range(10):
        window.addstr(10, 10, "[" + ("=" * i) + ">" + (" " * (10 - i )) + "]")
        window.refresh()
        time.sleep(0.5)

curses.wrapper(pbar)

强烈建议使用该curses.wrapper函数来调用您的主函数,它将在出现错误的情况下负责清理终端,因此以后不会处于无法使用的状态。

如果创建更复杂的UI,则可以为屏幕的不同部分,文本输入框和鼠标支持创建多个窗口。



 类似资料:
  • 问题内容: 我想制作一个在python终端中打印颜色的程序,但我不知道如何。我听说您可以使用某些转义序列将彩色文本打印出来,但是我不确定。如何使用python终端以特定颜色打印字符串? 旁注:我运行的是Linux版本。 问题答案: 尝试该模块。 另外,您可以使用ANSI代码:

  • 问题内容: 我想做几条给出标准输出的语句,而不会在语句之间看到换行符。 具体来说,假设我有: 结果是: 如何使它看起来像这样: 更妙的是,是否可以打印单号在最后一个号码,所以只有一个号码在屏幕上在同一时间? 问题答案: 更改为: , 在Python 2.7中 在Python 3中 如果要动态打印数据,请使用以下语法: 在Python 3中

  • 问题内容: 我试图打开一个终端并在其中运行命令。我在用 这将打开一个新的终端,但是命令不会执行。 问题答案: 该命令将新运行的进程替换为新进程,因此,如果要在要运行的命令列表中有一个exec,则在exec运行后,其他任何命令都将不会运行。因此,您要替换为,然后在运行之后再执行任何操作。尝试以下方法: 或者如果您需要终端保持打开状态,请尝试以下操作: 如果您希望终端保持打开状态并处于bash she

  • 问题内容: 如何用Python将彩色文本输出到终端?表示实心块的最佳Unicode符号是什么? 问题答案: 我之所以做出回应,是因为我找到了一种在Windows上使用ANSI代码的方法,这样你就可以更改文本的颜色而无需任何内置模块: 进行此操作的行是,但是要确保如果此人不在Windows上,则不会引起错误,你可以使用以下脚本: 注意:尽管此选项与其他Windows选项具有相同的选项,但是Windo

  • 该应用程序是模块化插件架构。即,在完成工作的同时动态加载类。为此,自定义类加载器扩展了类加载器。 问题的本质是在Eclipse中运行应用程序,而在终端(ubuntu)中使用以下代码行(其中目录m/表示模块的位置*. class): 我得到以下信息: 10:07:24085调试主CModuleLoader:findClass:39-运行系统类加载器。线程“main”java中出现异常。朗。反思。在太

  • 我一直在网上寻找,我发现没有文章说如何使用Python代码关闭终端。 这是我的代码: 我希望它关闭终端,而不是仅仅结束其进程。我见过其他项目也有这种情况,我也想这样做。有办法吗?谢谢