python shell清屏指令_python shell 中怎么实现清屏

展开全部

Python Shell有两种方式,分别为“Windows命令行窗口”和“IDLE”

“命令行窗口”下可以通过如下两e5a48de588b63231313335323631343130323136353331333339656362种方法:

1. import subprocess

subprocess.call("clear") # linux/mac

subprocess.call("cls", shell=True) # windows

执行完次命令后,窗口顶部第一行会出现一个0,接下来才会是输入提示符“>>>”

消除这个0的方法是在此命令前添加一个变量,例如 i=subprocess.call("cls", shell=True)

2. import os

os.system("cls") # windows

os.system("clear") # linux

执行完次命令后,窗口顶部第一行也会出现一个0,接下来才会是输入提示符“>>>”

消除这个0的方法同方法1

“IDLE”下以上两种方式都不起作用,可以通过建立如下函数实现:

1、伪清屏

def cls():

print "\n"*80 #Shell 3.0+ 改为 print(('\n'*80))

此函数将命令行往下移动80行,数字80可以自己任意设定

这是伪清屏,只是输入满屏的空格而已

2、插件法

首先下载clearwindow.py,将这个文件放在Python X\Lib\idlelib目录下(X为python版本),然后在这个目录下找到config-extensions.def这个文件(idle扩展的配置文件),以记事本的方式打开它(为防止出错,可以在打开它之前先copy一个备份)。打开config-extensions.def 后在句末加上这样几句:

[ClearWindow]

enable=1

enable_editor=0

enable_shell=1

[ClearWindow_cfgBindings]

clear-window=

然后保存退出即可。

打开python的idle,看看options是不是多了一个选项clear shell window ctrl+L

如果是这样的话,那就证明安装成功了,以后要清屏直接ctrl+L就可以了

附clearwindow.py代码:class ClearWindow:

menudefs = [

('options', [None,

('Clear Shell Window', '<>'),

]),]

def __init__(self, editwin):

self.editwin = editwin

self.text = self.editwin.text

self.text.bind("<>", self.clear_window2)

self.text.bind("<>", self.undo_event)  # add="+" doesn't work

def undo_event(self, event):

text = self.text

text.mark_set("iomark2", "iomark")

text.mark_set("insert2", "insert")

self.editwin.undo.undo_event(event)

# fix iomark and insert

text.mark_set("iomark", "iomark2")

text.mark_set("insert", "insert2")

text.mark_unset("iomark2")

text.mark_unset("insert2")

def clear_window2(self, event): # Alternative method

# work around the ModifiedUndoDelegator

text = self.text

text.undo_block_start()

text.mark_set("iomark2", "iomark")

text.mark_set("iomark", 1.0)

text.delete(1.0, "iomark2 linestart")

text.mark_set("iomark", "iomark2")

text.mark_unset("iomark2")

text.undo_block_stop()

if self.text.compare('insert', '

self.text.mark_set('insert', 'end-1c')

self.editwin.set_line_and_column()

def clear_window(self, event):

# remove undo delegator

undo = self.editwin.undo

self.editwin.per.removefilter(undo)

# clear the window, but preserve current command

self.text.delete(1.0, "iomark linestart")

if self.text.compare('insert', '

self.text.mark_set('insert', 'end-1c')

self.editwin.set_line_and_column()

# restore undo delegator

self.editwin.per.insertfilter(undo)

你可能感兴趣的:(python,shell清屏指令)