Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 完全清除终端以执行ascii动画的最简单方法_Python_Linux_Macos_Python 3.7 - Fatal编程技术网

Python 完全清除终端以执行ascii动画的最简单方法

Python 完全清除终端以执行ascii动画的最简单方法,python,linux,macos,python-3.7,Python,Linux,Macos,Python 3.7,我知道有很多库可以为你做这件事,但我想知道是否有简单的内置方法 到目前为止,我只做了os.system('clear')。这是可行的,但是“clear”命令只插入一组换行符,而不是实际清除整个屏幕 这对于不太大的动画很好,但是对于覆盖超过1个屏幕空间的动画,它将开始上下滚动。首先,您的操作系统(“清除”)可以通过 os.system('cls' if os.name == 'nt' else 'clear') 不过,您可能需要尝试ANSI转义序列: print("\033c", end="\0

我知道有很多库可以为你做这件事,但我想知道是否有简单的内置方法

到目前为止,我只做了
os.system('clear')
。这是可行的,但是“clear”命令只插入一组换行符,而不是实际清除整个屏幕


这对于不太大的动画很好,但是对于覆盖超过1个屏幕空间的动画,它将开始上下滚动。

首先,您的操作系统(“清除”)可以通过

os.system('cls' if os.name == 'nt' else 'clear')
不过,您可能需要尝试ANSI转义序列:

print("\033c", end="\033[A")
值得一提的是,要使这种方法跨平台,终端必须接受ANSI代码。典型的windows终端没有。因此,您可以使用colorama,如下所示:

if os.name == "nt":  # Detect if Windows
    import colorama
    colorama.init()  # Activate ANSI escape sequences
还有:

printf '\33c\e[3J'

首先,您的操作系统(“clear”)可以通过

os.system('cls' if os.name == 'nt' else 'clear')
不过,您可能需要尝试ANSI转义序列:

print("\033c", end="\033[A")
值得一提的是,要使这种方法跨平台,终端必须接受ANSI代码。典型的windows终端没有。因此,您可以使用colorama,如下所示:

if os.name == "nt":  # Detect if Windows
    import colorama
    colorama.init()  # Activate ANSI escape sequences
还有:

printf '\33c\e[3J'

一些Unix/Linux终端可以使用特殊代码来更改颜色、移动光标以及清除终端。Python模块,如
curses
pycurses
,使用它们。但并非所有终端都必须重新检查这些代码。维基百科上那个问题答案的副本就是我在问题中明确指出的:使用我提到的os.system('clear')对我的用例不起作用。因此,也许我的问题没有答案,但这与其他人回答的问题不同。在做了一些挖掘并实际阅读了我写的简短的四句话问题后,我发现这是一个实际的重复问题:一些Unix/Linux终端可以使用特殊代码来改变颜色,移动光标并清除端子。Python模块,如
curses
pycurses
,使用它们。但并非所有终端都必须重新检查这些代码。维基百科上那个问题答案的副本就是我在问题中明确指出的:使用我提到的os.system('clear')对我的用例不起作用。因此,也许我的问题没有答案,但它与其他人回答的问题不同。在做了一些挖掘并实际阅读了我写的简短的四句话问题后,我发现这是一个实际的重复问题:重点不是跨平台。关键是“清除”根本不能清除终端。它只是增加了一系列新的产品线。@RazorStorm我给出了多个解决方案,其中一个碰巧具有跨平台兼容性。这是一个反问题,我刚才试过其他的,既不是
print(“\033c”,end=“\033[A”)
也不是
printf'\33c\e[3J'
有效。我试过print(f'\33c\e[3J')或print('\33c\e[3J')或print(r'\33c\e[3J')作为原始字符串。这些都不起作用。它根本没有清除页面。os.system('clear'))只需添加新行。最后一个选项是在windows上,当我运行
print('\33c\e[3J')时,这在OSX上就足够有趣了
在终端的python解释器中,它可以工作。但是,当我将它作为脚本的一部分运行时,它不能工作。现在,当脚本输出占用一个屏幕上多行的内容时,printf'\33c'将只清除当前页面上的内容。保留所有以前的页面内容。查找扩展这一点不是跨平台的。这一点“清除”根本不清除终端。它只是添加了一堆新行。@RazorStorm我给出了多种解决方案,其中一种恰巧具有跨平台兼容性。这是一个反问题。我刚才尝试了其他解决方案,既不是
print(“\033c”,end=“\033[a”)
也不是
printf'\33c\e[3J'
有效。我尝试将打印(f'\33c\e[3J')或打印('\33c\e[3J')或打印(r'\33c\e[3J')作为原始字符串。所有这些都无效。它根本没有清除页面。操作系统('clear')只是添加新行。最后一个选项是在windows上,当我运行
print('\33c\e[3J')时,这在OSXInterrently上就足够了
在终端的python解释器中,它可以工作。但是,当我将它作为脚本的一部分运行时,它不能工作。现在,当脚本输出占用一个屏幕上多行的内容时,printf'\33c'将只清除当前页面上的内容。保留所有以前的页面内容。查找扩展是