是否存在任何标准的“附带电池”方法来清除Python脚本中的终端屏幕,或者我必须去诅咒(库,而不是单词)?
当前回答
一个纯Python解决方案。 不依赖于ANSI或外部命令。 只有您的终端必须能够告诉您视图中有多少行。
from shutil import get_terminal_size
print("\n" * get_terminal_size().lines, end='')
Python版本>= 3.3.0
其他回答
如果您所需要的只是清除屏幕,那么这可能就足够了。问题是在linux版本之间甚至没有一个100%跨平台的方法来做到这一点。问题是终端的实现都支持略微不同的东西。我很确定“clear”在任何地方都适用。但是更“完整”的答案是使用xterm控制字符来移动光标,但这需要xterm本身。
在不了解更多问题的情况下,你的解决方案似乎已经足够好了。
您可以尝试使用clear,但它可能并非在所有Linux发行版上都可用。在windows上使用你提到的cls。
import subprocess
import platform
def clear():
subprocess.Popen( "cls" if platform.system() == "Windows" else "clear", shell=True)
clear()
注意:控制终端屏幕可能被认为是一种糟糕的形式。你在考虑使用期权吗?让用户自己决定是否要清除屏幕可能会更好。
对我来说,最优雅的说法是:
import os
os.system('cls||clear')
清除屏幕的方法可能有些俗气,但在我所知的任何平台上都适用,如下:
for i in xrange(0,100):
print ""
转义序列呢?
print(chr(27) + "[2J")
推荐文章
- 在每个列表元素上调用int()函数?
- 当使用代码存储库时,如何引用资源的相对路径
- 如何在Flask-SQLAlchemy中按id删除记录
- 在Python中插入列表的第一个位置
- Python Pandas只合并某些列
- 如何在一行中连接两个集而不使用“|”
- 从字符串中移除前缀
- 代码结束时发出警报
- 如何在Python中按字母顺序排序字符串中的字母
- 在matplotlib中将y轴标签添加到次要y轴
- 如何消除数独方块的凹凸缺陷?
- 为什么出现这个UnboundLocalError(闭包)?
- 使用Python请求的异步请求
- 如何检查一个对象是否是python中的生成器对象?
- 如何从Python包内读取(静态)文件?