Python 清屏

7 投票
4 回答
16142 浏览
提问于 2025-04-18 01:30

我还在努力制作我的测验,但我想在提问时加入一个清屏的代码。经过研究,我找到了一段可以用的代码,但它把我的问题放到了屏幕的底部。这里有我截的一张图:

图片在下面

这是我找到的一个清屏代码的例子:

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 上做到这一点。

撰写回答