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

终端/控制台中的Python控制输出位置

毛德华
2023-03-14
问题内容

这是python语言的问题,终端/控制台适用于类Unix系统。如果解决方案与平台无关,但是不是必需的,那就太好了。

方案是当程序不断向终端打印行时。但是,在要打印的许多行中,其中一些行是特殊的,例如进度条或状态指示器:它们必须仅放置在控制台的底部,而所有其他行仍可以按原样打印在一行中,另一个,屏幕也正常滚动。

示例代码解决方案将比理论解决方案好得多。为此,这里是一个示例:

def print_status(msg):
  # implement me
  print msg

def print_many_lines():
  print 'line one\n'
  print 'line two\n'
  print_status('i am here')
  print 'line three\n'
  print 'line four\n'
  print 'line five\n'
  print_status('i am changed')
  print 'line six\n'

您能帮我实现 print_status 函数,以便传递给它的 味精 始终打印在终端的底部吗?

请注意,这与另一个类似的问题有很大不同,当在终端上 连续 打印多行时,我们如何确保它们在同一行上打印。在这种情况下使用\
r可能很有用,但不能解决此问题,因为(1)这些特殊行很可能不会连续打印,并且(2)在这些特殊行之后还会打印其他行,但是这些特殊行应保持在终端的底部

谢谢!


问题答案:

对于Windows终端,请尝试控制台模块。对于unix,curses模块可以。

这就是您在Windows上执行此操作的方式。

c = Console.getconsole()
c.text(0, -1, 'And this is the string at the bottom of the console')

通过指定-1第二个参数,字符串位于最底行。

对于Linux,在最后一行打印的工作代码。

import time
import curses

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

curses.wrapper(pbar)


 类似资料:
  • 控制台与终端 [KNL] console=设备及选项 设置输出控制台使用的设备及选项。例如:ttyN 表示使用第N个虚拟控制台。其它用法主要针对嵌入式环境(Documentation/serial-console.txt)。 [KNL] consoleblank=秒数 控制台多长时间无操作后黑屏,默认值是600秒,设为0表示禁止黑屏。 [HW] no_console_suspend 永远也不要将控

  • 问题内容: 我想知道如何像某些C / C ++程序那样在Python中创建这些漂亮的控制台计数器之一。 我在做一个循环,当前输出如下: 更整洁的是只更新最后一行; 我已经在许多控制台程序中看到了这一点,并且想知道是否/如何在Python中做到这一点。 问题答案: 一个简单的解决方案是只在字符串之前编写而不添加换行符。如果字符串永远不会变短,那就足够了… 进度条稍微复杂一点……这是我正在使用的东西:

  • 问题内容: 程序应在中列出卷。 例如:我从vollist.java类获得此输出。 控制台输出: 如何在我的控制台中获得此控制台输出。 那只会显示row1-> vol1 row2-> vol1 ............如何获得类似于控制台row1-> vol1 row2-> vol2的输出(计数) 问题答案: 定义并实现您的TableModel(在这种情况下,扩展AbstractTableModel

  • 我最近在我的应用程序中安装了Firebase pods,因为我希望现在能够检查用户并允许用户注册。 但是,这是控制台中的内容: 2016-09-27 22:45:50.248 样本应用[68417:] 火垒分析 v.3402000 开始 2016-09-27 22:45:50.260785 样本应用[68417:3132777] 子系统: com.apple.libsqlite3, 分类: 日志记

  • 当我在Android Studio上运行应用程序时,我看到了一些垃圾收集输出: 这是什么意思?(我正在阅读大型csv文件,其中有更多70k行)

  • 问题内容: 我创建了一个复杂的管道。在每个阶段,我都叫工作。我想在Jenkins的某个阶段中查看每个作业的控制台输出。如何获得? 问题答案: 从构建步骤返回的对象可用于查询日志,如下所示: 从构建步骤返回的对象是RunWrapper类对象。getRawBuild()调用返回一个Run对象- 除了从此类的外观逐行读取日志之外,还有其他选择。为此,您需要禁用管道沙箱或获取这些方法的脚本批准: 如果要对

  • 问题内容: 我正在使用Pygame / SDL的操纵杆模块从游戏手柄获取输入。每次调用它的方法时,它都会打印到控制台。这是有问题的,因为我使用控制台来帮助我进行调试,现在每秒被淹没60次。有什么方法可以禁用此功能吗?通过Pygame / SDL中的选项还是在函数调用时取消控制台输出?我在Pygame文档中没有提到这一点。 编辑: 原来是由于在编译SDL库时打开了调试功能。 问题答案: 这是来自jo

  • 1.1.1. Rokid.Control 1.1.1. Rokid.Control 执行指定的操作,并返回终端最新状态 Endpint Object 字段名 类型 描述 endpointId string Skill 提供的终端 Id additionalInfo key-value pairs Skill 提供的终端附加信息 states InterfaceState[] 终端能力状态,具体信息