是否存在任何标准的“附带电池”方法来清除Python脚本中的终端屏幕,或者我必须去诅咒(库,而不是单词)?
当前回答
您可以对terminfo数据库进行分解,但这样做的函数无论如何都是在curses中。
其他回答
如果您使用的是Linux/UNIX系统,那么打印ANSI转义序列以清除屏幕就可以了。您还需要将光标移动到屏幕的顶部。这将在任何支持ANSI的终端上工作。
import sys
sys.stderr.write("\x1b[2J\x1b[H")
这将不能在Windows上工作,除非ANSI支持已启用。Windows可能有一个等效的控制序列,但我不知道。
我将这样做,使它看起来更像bash:
只需在主目录下创建一个名为.pythonstartup的文件,并在函数中使用poke的答案
在Linux上:
echo "from subprocess import call
def clear(int=None):
call('clear')
if int == 0:
exit()
clear()" >> $HOME/.pythonstartup ; export PYTHONSTARTUP=$HOME/.pythonstartup ; python
您可以添加export PYTHONSTARTUP=$HOME/。Pythonstartup到你的。/bashrc文件
因为我关心的是空间;调用该函数将不会在启动时显示python解释器描述,但您可以删除clear()以保留它。
像使用普通函数一样使用它应该不会打印退出状态:
>>> clear()
如果您将参数0传递给函数,它将清除屏幕并成功退出,因此您可以在干净的屏幕中继续使用shell
>>> clear(0)
对我来说,最优雅的说法是:
import os
os.system('cls||clear')
一个纯Python解决方案。 不依赖于ANSI或外部命令。 只有您的终端必须能够告诉您视图中有多少行。
from shutil import get_terminal_size
print("\n" * get_terminal_size().lines, end='')
Python版本>= 3.3.0
一个简单的跨平台解决方案是在Windows上使用cls命令,或者在Unix系统上使用clear命令。与os连用系统,这是一个很好的一行:
import os
os.system('cls' if os.name == 'nt' else 'clear')
推荐文章
- python:将脚本工作目录更改为脚本自己的目录
- 如何以编程方式获取python.exe位置?
- 如何跳过循环中的迭代?
- 使用Pandas为字符串列中的每个值添加字符串前缀
- ImportError:没有名为matplotlib.pyplot的模块
- 在python中遍历对象属性
- 如何在Python中使用方法重载?
- 在Python中提取文件路径(目录)的一部分
- 如何安装没有根访问权限的python模块?
- 尝试模拟datetime.date.today(),但不工作
- 将行添加到数组
- 如何在Python中直接获得字典键作为变量(而不是通过从值搜索)?
- Python:为什么functools。部分有必要吗?
- 如何用python timeit对代码段进行性能测试?
- Python迭代器中的has_next ?