只是一个简单的问题:
你如何在 shell 中清除屏幕?我见过这样的方式:
import os
os.system('cls')
这只是打开 windows cmd,清除屏幕并关闭,但我希望清除 shell 窗口
(PS:我不知道这有帮助,但我使用的是 Python 3.3.2 版本)
谢谢 :)
快捷键CTRL+怎么样L?
它适用于所有 shell,例如 Python、Bash、MySQL、MATLAB 等。
import os
os.system('cls') # For Windows
os.system('clear') # For Linux/OS X
For macOS/OS X, you can use the subprocess module and call 'cls' from the shell:
import subprocess as sp
sp.call('cls', shell=True)
To prevent '0' from showing on top of the window, replace the 2nd line with:
tmp = sp.call('cls', shell=True)
For Linux, you must replace cls
command with clear
tmp = sp.call('clear', shell=True)
以下是您可以在 Windows 上使用的一些选项
第一个选项:
import os
cls = lambda: os.system('cls')
>>> cls()
第二种选择:
cls = lambda: print('\n' * 100)
>>> cls()
如果您在 Python REPL 窗口中,则第三个选项:
Ctrl+L
您正在寻找的东西可以在 curses 模块中找到。
IE
import curses # Get the module
stdscr = curses.initscr() # initialise it
stdscr.clear() # Clear the screen
重要的是要记住在任何退出之前,您需要将终端重置为正常模式,这可以通过以下几行来完成:
curses.nocbreak()
stdscr.keypad(0)
curses.echo()
curses.endwin()
如果你不这样做,你会得到各种奇怪的行为。为确保始终完成此操作,我建议使用 atexit 模块,例如:
import atexit
@atexit.register
def goodbye():
""" Reset terminal from curses mode on exit """
curses.nocbreak()
if stdscr:
stdscr.keypad(0)
curses.echo()
curses.endwin()
可能会做得很好。
除了是一个全方位的优秀 CLI 库之外,click
还提供了一个平台无关的clear()
功能:
import click
click.clear()
此函数适用于任何操作系统(Unix、Linux、macOS 和 Windows)
Python 2 和 Python 3
import platform # For getting the operating system name
import subprocess # For executing a shell command
def clear_screen():
"""
Clears the terminal screen.
"""
# Clear command as function of OS
command = "cls" if platform.system().lower()=="windows" else "clear"
# Action
return subprocess.call(command) == 0
在 windows 中,命令是cls
,在类 unix 系统中,命令是clear
.
platform.system()
返回平台名称。前任。'Darwin'
对于 macOS。
subprocess.call()
执行系统调用。前任。subprocess.call(['ls','-l'])
在 python 中清除屏幕的一种更简单的方法是使用Ctrl+ L,尽管它适用于 shell 以及其他程序。
如果你使用linux终端访问python,那么cntrl+l是最好的清屏方案
我正在使用一个仅在幕后使用上述方法之一的类...我注意到它适用于 Windows 和 Linux...我喜欢使用它,因为它更容易键入 clear() 而不是 system('clear' ) 或 os.system('clear')
pip3 install clear-screen
from clear_screen import clear
然后当你想清除外壳时:
clear()
使用Windows 10和pyhton3.5我测试了很多代码,没有什么比这更能帮助我了:
首先定义一个简单的函数,这个函数会打印 50 行换行;(数字 50 取决于你在屏幕上能看到多少行,所以你可以改变这个数字)
def cls(): print ("\n" * 50)
然后只要你想要或需要多次调用它
cls()
Subprocess 允许您为 Shell 调用“cls”。
import subprocess
cls = subprocess.call('cls',shell=True)
这就像我能做到的那样简单。希望这对你有用!
Rather than importing all of curses or shelling out just to get one control character, you can simply use (on Linux/macOS):
print(chr(27) + "[2J")
(Source: Clear terminal in Python)
Command+K
在 OSX 中可以正常工作以清除屏幕。
Shift+Command+K
仅清除回滚缓冲区。
import curses
stdscr = curses.initscr()
stdscr.clear()
你可以使用 Window 或 Linux 操作系统
import os
os.system('cls')
os.system('clear')
您可以使用子流程模块
import subprocess as sp
x=sp.call('cls',shell=True)
os.system('cls')
当我打开它们时工作正常。它以 cmd 样式打开。
以下是如何在不显式调用任何函数的情况下制作您自己的命令cls
或命令!clear
我们将利用 python 控制台调用repr()
在屏幕上显示对象这一事实。如果您有自己的自定义 python shell(-i
例如带有选项)并且您有一个预加载脚本,这将特别有用。这就是你需要的:
import os
class ScreenCleaner:
def __repr__(self):
os.system('cls') # This actually clears the screen
return '' # Because that's what repr() likes
cls = ScreenCleaner()
如果您使用的是 linux(在命令和变量名中),请使用clear
而不是!cls
os
现在,如果您只是在控制台中写入cls
或写入 - 它会清除它!clear
甚至不是cls()
-clear()
只是原始变量。这是因为python会调用repr(cls)
打印出来,进而触发我们的__repr__
函数。
让我们测试一下:
>>> df;sag
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'df' is not defined
>>> sglknas
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'sglknas' is not defined
>>> lksnldn
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'lksnldn' is not defined
>>> cls
而且画面清晰!
澄清一下 - 上面的代码需要像这样在控制台中导入
from somefile import cls
或直接使用以下内容预加载:
python -i my_pre_loaded_classes.py
对于 Python IDLE 3.8.1,您可以重新启动 Shell
CTRL + F6
在菜单上 单击 Shell 菜单。然后单击“重新启动 Shell”选项。
这是最好的方法:
>>>import os
>>>def cls(): os.system('cls')
>>>cls()