標籤:

IDLE如何清屏?


原文鏈接:python idle 清屏問題的解決

在學習和使用python的過程中,少不了要與Python IDLE打交道。但使用 Python IDLE 都會遇到一個常見而又懊惱的問題——要怎麼清屏?
答案是為IDLE增加一個清屏的擴展ClearWindow就可以了(在Issue 6143: IDLE中可以看到這個擴展的說明)。
下面我說說安裝使用的方法。
1、下載clearwindow.py(右擊-目標另存為,格式為py結尾,直接點擊會打開腳本內容)。
2、拷貝clearwindow.py文件,放在Python安裝目錄Python XXXLibidlelib下面(XXX為你的python版本)。
3、記事本打開Python XXXLibidlelib目錄下的config-extensions.def(IDLE擴展的配置文件), 為防止出錯,你可以在打開它之前先copy一個備份 。
4、修改config-extensions.def ,在末尾添加如下內容,然後保存退出:
[ClearWindow]
enable=1
enable_editor=0
enable_shell=1
[ClearWindow_cfgBindings]
clear-window=&
5、打開Python的IDLE,options選項中就可以看到增加了Clear shell window ctrl+;。
6、在IDLE輸入代碼,然後按Ctrl+;(是指Ctrl和;),發現剛輸入代碼可以被清除了。

說明:

快捷鍵Ctrl+;,可修改成其他鍵,將「clear-window=&」里的Control和;修改成其他鍵即可。

經試驗,Control換成Alter時,會啟動不了IDLE,換成Shift時,快捷鍵不起作用,因為Shift+l,直接變成輸入L了。


關掉重開


前面幾個說沒成功 的,要將文件名字,ClearWindow 首字母大寫 ,這樣就能成功了。


可以參考 python idle 清屏問題的解決


有必要這麼複雜嗎

試試

import os

os.system("cls")

只會多一個0

---------------------------

忘了說了,這個只有cmd管用,IDLE 好像不行。

為啥要用自帶的idle?集成到vs和用命令行多方便。


我也非常討厭idle這一點,要是能像matlab那樣clear,clc一句話搞定就好了,可惜我們得再去安裝插件

要是不安裝插件,我覺得只好這樣了


import os
def c():os.system("cls")

定義一個c函數,每次輸入c(),然後回車就可以清屏了


MAC Python IDLE 清屏

原理跟最高票答案一致,Python【ClearWindow.py】放置位置對於初學者實在不好找,寫上來:

【MAC 版本10.13 多個版本Python位置:Homebrew、官網下載、系統自帶三種位置】

1. 【 Homebrew安裝python3.6的位置】

/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/idlelib

【Python官網下載安裝python3.6的位置】

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/idlelib

【系統自帶的Python2.7的位置】

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/idlelib

※※※ tips:

【MAC讓標題欄顯示全部路徑】

在終端中輸入:

defaults write com.apple.finder _FXShowPosixPathInTitle -bool TRUE;killall Finder

取消則是:把write改成delet

2.【ClearWindow.py】文件下載:https://pan.baidu.com/s/1ntOzSAt (轉自百度經驗原貼網友)

3.把【ClearWindow.py】複製到 1.【放置位置】,打開,第一大段中有這麼一行:

[ClearWindow]

enable=1

enable_editor=0

enable_shell=1

[ClearWindow_cfgBindings]

clear-window=&<Control-Key-l&>

複製這一段。

4. 在【放置位置】中找到【config-extensions.def】用記事本打開,粘貼上面一段。

5.重啟IDLE

補充:&<Control-Key-l&> 我自己改為了 &<Command-Key-l&>

上圖:


2016年的新式辦法,python 3.5.1 + Windows

pip install idlex

然後創建一個快捷方式

C:Python3pythonw.exe "c:Python3scriptsidlex.pyw"

路徑按自己的實際情況替換下,就OK了

缺點:用方向鍵上下對已經輸入的命令進行遍歷時,如果有多行的輸入歷史,會卡在那裡


為什麼我的不行啊 3.6的 在options下面只有一個Python Configure option


IDLE Extensions for Python

裡面有清屏插件(話說最好的辦法不就是放棄idle嗎?


回答第一的方法很好用 比自己寫代碼清除好用的多啊

ClearWindow.py 代碼如下,直接複製在IDLE新建文件存為py文件到指定文件夾下。(百度經驗搜得hhhhh~)

"""
Clear Window Extension
Version: 0.2
Author: Roger D. Serwy
roger.serwy@gmail.com
Date: 2009-06-14
It provides "Clear Shell Window" under "Options"
with ability to undo.
Add these lines to config-extensions.def
[ClearWindow]
enable=1
enable_editor=0
enable_shell=1
[ClearWindow_cfgBindings]
clear-window=&
"""
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", "&<", "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)


import os
def c():os.system("cls")

定義一個c函數,每次輸入c(),然後回車就可以清屏了


好麻煩,還是關了重開吧。要是有clear命令就好了


為什麼我的就不行呢,按照步驟做的啊?在options下面只有一個Python Configure option


推薦閱讀:

TAG:Python |