美文网首页
Python自带IDLE Shell和命令行(cmd中) 清屏

Python自带IDLE Shell和命令行(cmd中) 清屏

作者: 易点梅 | 来源:发表于2019-04-13 11:51 被阅读0次

    一、针对命令行CMD中:调用DOS系统提供的cls命令

    import os

    os.system('cls')

    二、针对IDLE Shell

    1、在...\Python\Lib\idlelib文件夹下新建ClearWindow.py文件

    class ClearWindow:

        menudefs = [

            ('options', [None,

                        ('Clear Shell Window', '<<clear-window>>'),

                        ]), ]

        def __init__(self, editwin):

            self.editwin = editwin

            self.text = self.editwin.text

            self.text.bind("<<clear-window>>", self.clear_window2)

            self.text.bind("<<undo>>", 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', '<', 'iomark'):

                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', '<', 'iomark'):

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

            self.editwin.set_line_and_column()

            # restore undo delegator

            self.editwin.per.insertfilter(undo)

    2、 在Python\Lib\idlelib目录下编辑config-extensions.def(IDLE扩展配置文件)

    在该文件最后增加如下内容:

    [ClearWindow]

    enable=1

    enable_editor=0

    enable_shell=1

    [ClearWindow_cfgBindings]

    clear-window=<Control-Key-w>    

    --定义了清屏快捷键Ctrl + w,w必须是小写

    启动Python IDLE,在Options菜单下会出现"Clear Shell Window Ctrl+W"

    这时候就可以用快捷键Ctrl + w 清屏了

    相关文章

      网友评论

          本文标题:Python自带IDLE Shell和命令行(cmd中) 清屏

          本文链接:https://www.haomeiwen.com/subject/suslwqtx.html