【问题标题】:How to clear python console (i.e. Ctrl+L command line equivalent)如何清除 python 控制台(即 Ctrl+L 命令行等效项)
【发布时间】:2014-12-11 10:42:18
【问题描述】:

操作系统 = Linux

[boris@E7440-DELL ~]$ uname -a
Linux E7440-DELL 3.17.4-200.fc20.x86_64 #1 SMP Fri Nov 21 23:26:41 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

从 python 控制台(Spyder 2.2.4、Python 2.7.5 64bits、Qt 4.8.5)可以看到:

>>> import os
>>> print(os.name)
posix

我正在尝试找出一种清除 python 控制台的方法。不是任何解决方案都适合,但它必须与按 Ctrl+L 的结果完全相同。

从其他线程我已经尝试了几个选项:

>>> import os
>>> os.system('clear')
256

>>> import subprocess
>>> subprocess.call("clear", shell=True)
1

>>> print '\n'*1000

正如您所见,os.system('clear')subprocess.call("clear", shell=True) 都不会产生所需的结果。它们只输出一个值(分别为 256 或 1)。 print '\n'*1000 是迄今为止最接近预期的结果。但是,它有两个问题:

  1. 光标不在屏幕顶部(如 Ctrl+L 那样),但它停留在底部,因此我的代码打印的所有新行都向上滚动,无法阅读。李>
  2. 视觉体验高度依赖于值,因此为了使其更具可读性,我必须改用print '\n'*100000

有谁知道正确的解决方案,真正可以从命令行执行 Ctrl+L 的解决方案? (是的,我正在使用 linux,我对 windows 解决方案不感兴趣)

【问题讨论】:

  • os.system("clear") 为我工作。您使用的是什么操作系统?
  • 他在最后一行提到了他的操作系统(linux)。最重要的信息应该在第一行
  • 你试过print '\x0c'吗?
  • 当您说“Python 控制台”时,您是指从命令提示符处运行python 吗?还是您使用的是 Idle 之类的东西?

标签: python console


【解决方案1】:

你可以试试:

os.system('tput reset')

要隐藏返回值,请使用:

variable = os.system('tput reset')

【讨论】:

  • 正如我上面已经提到的它不起作用,它只是输出一个值 256
  • 也可以试试“os.system('tput reset')”隐藏返回值,使用“variable = os.system('tput reset')”
  • 试过了,但还是没有任何反应。只改变了输出值,现在是0。
猜你喜欢
  • 2016-02-08
  • 2016-08-29
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
  • 2011-02-28
相关资源
最近更新 更多