Python 清屏
我还在努力制作我的测验,但我想在提问时加入一个清屏的代码。经过研究,我找到了一段可以用的代码,但它把我的问题放到了屏幕的底部。这里有我截的一张图:
这是我找到的一个清屏代码的例子:
print "\n" * 40
我尝试把“40”改成“20”,但没有任何效果。我是在Mac上操作,所以
import os
os.system('blahblah')
这个代码不管用。请帮帮我!
4 个回答
2
在OSX上使用Python的最佳解决方案(不需要导入任何模块),只需这样做:
print("\033c\033[3J")
或者在终端中使用bash/shell脚本:
echo -n "\033c\033[3J"
或者:
printf "\033c\033[3J"
请不要使用clear
命令!
在OSX中,如果你使用命令clear
,那么你仍然可以在终端窗口中向上滚动,所以这并不能帮助你节省或清除内存。
2
可以通过子进程来实现
import subprocess as sp
clear_the_screen = sp.call('cls', shell=True) # Windows <br>
clear_the_screen = sp.call('clear', shell=True) # Linux
3
这个函数在任何操作系统上都能运行(包括Unix、Linux、OS X和Windows)
适用于Python 2和Python 3
from platform import system as system_name # Returns the system/OS name
from subprocess import call as system_call # Execute a shell command
def clear_screen():
"""
Clears the terminal screen.
"""
# Clear screen command as function of OS
command = 'cls' if system_name().lower().startswith('win') else 'clear'
# Action
system_call([command])
在Windows系统中,清屏的命令是 cls
,而在类Unix系统中,清屏的命令是 clear
。
platform.system()
可以返回当前操作系统的名称。例如,在macOS上,它会返回 'Darwin'
。
subprocess.call()
用于执行系统命令。例如, subprocess.call(['ls','-l'])
这个命令会列出当前目录下的文件。
5
正如 @pNre 提到的,这个问题告诉你如何使用 ASCII 转义序列来实现这个功能。
如果你想用 os
模块来做这个,在 Mac 上可以使用的命令是 clear
。
import os
os.system('clear')
注意:你在 Mac 上并不意味着 os.system('blahblah')
就一定不能用。更可能的情况是你传给 os.system
的命令有问题。
下面的回答会告诉你如何在 Windows/Linux 上做到这一点。