一个简单的问题:
如何清除外壳中的屏幕?
我见过这样的方式:
import os
os.system('cls')
这只是打开窗口cmd,清除屏幕然后关闭 我希望清除shell窗口 (PS:我不知道这有帮助,但我使用的是3.3.2版本的Python) 谢谢:))
答案 0 :(得分:64)
快捷方式 CTRL + L 怎么样?
适用于所有贝壳,例如Python,Bash,MySQL,MATLAB等
答案 1 :(得分:44)
import os
os.system('cls') # For Windows
os.system('clear') # For Linux/OS X
答案 2 :(得分:39)
对于OS X,您可以使用子进程模块并从shell调用'cls':
import subprocess as sp
sp.call('cls',shell=True)
要防止在窗口顶部显示“0”,请将第二行替换为:
tmp = sp.call('cls',shell=True)
对于linux,您必须将cls
命令替换为clear
tmp = sp.call('clear',shell=True)
答案 3 :(得分:11)
您正在寻找的东西可以在curses模块中找到。
即
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()
可能做得很好。
答案 4 :(得分:7)
除了是一个全面的优秀CLI库之外,click
还提供了与平台无关的clear()
功能:
import click
click.clear()
答案 5 :(得分:4)
此功能适用于任何操作系统(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()
返回平台名称。防爆。对于macOS,'Darwin'
subprocess.call()
执行系统调用。防爆。 subprocess.call(['ls','-l'])
答案 6 :(得分:4)
使用 Windows 10 和 pyhton3.5 我测试了很多代码,没有什么比这更能帮助我了:
首先定义一个简单的功能,此功能将打印50个换行符;(数字50将取决于您在屏幕上可以看到多少行,因此您可以更改此数字)
def cls(): print ("\n" * 50)
然后根据需要多次调用
cls()
答案 7 :(得分:4)
以下是一些可在Windows上使用的选项
第一个选项:
import os
cls = lambda: os.system('cls')
>>> cls()
第二个选项:
cls = lambda: print('\n' * 100)
>>> cls()
如果您在Python REPL窗口中,则为第三个选项:
Ctrl+L
答案 8 :(得分:3)
在python中清除屏幕的一种更简单的方法是使用 Ctrl + L 虽然它适用于shell以及其他程序。
答案 9 :(得分:3)
如果你使用linux终端来访问python,那么cntrl + l是清除屏幕的最佳解决方案
答案 10 :(得分:2)
Command+K
在OSX中可以正常工作以清除屏幕。
Shift+Command+K
仅清除回滚缓冲区。
答案 11 :(得分:1)
import curses
stdscr = curses.initscr()
stdscr.clear()
答案 12 :(得分:1)
os.system('cls')
工作正常。它以cmd风格打开。
答案 13 :(得分:1)
您可以使用Window或Linux Os
import os
os.system('cls')
os.system('clear')
您可以使用子流程模块
import subprocess as sp
x=sp.call('cls',shell=True)
答案 14 :(得分:1)
子流程允许您调用" cls"为壳牌。
import subprocess
cls = subprocess.call('cls',shell=True)
这就像我能做到的那么简单。希望这对你有用!
答案 15 :(得分:0)
我正在使用仅在幕后使用上述方法之一的类...我注意到它可以在Windows和Linux上运行...我喜欢使用它,因为键入clear()而不是system( 'clear')或os.system('clear')
pip3 install clear-screen
from clear_screen import clear
,然后在要清除外壳时:
clear()
答案 16 :(得分:0)
这里是制作自己的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
答案 17 :(得分:0)
那是最好的方法:
>>>import os
>>>def cls(): os.system('cls')
>>>cls()
答案 18 :(得分:0)
对于Python IDLE 3.8.1,您可以重新启动Shell
CTRL + F6
在菜单上单击“外壳”菜单。 然后单击“重新启动外壳程序”选项。
答案 19 :(得分:-1)
您可以简单地使用(在Linux / macOS上)使用,而不是导入所有的curses或掏空只是为了获得一个控制角色而已:
print(chr(12)) # sends Ctrl-L