Bất kỳ cách nào để xóa cửa sổ IDLE của python?


153

Tôi biết có một chủ đề tương tự về giao diện điều khiển python, nhưng tôi không biết liệu chúng có giống nhau không. Tôi đã thử hệ thống ("rõ ràng") và nó không hoạt động ở đây.

Làm cách nào để xóa cửa sổ IDLE của python?


10
Nó không phải là một bản sao, OP đang hỏi về cách xóa vỏ IDLE, không phải bàn điều khiển
Moha con lạc đà toàn năng

1
Lý do điều này không hoạt động là vì Python bắt đầu một phiên shell mới và chạy lệnh cleartrong đó. Nó cũng giải thích tại sao cdkhông hoạt động system.os.
JKD

14
Giữ ctrl + jmột lúc rồi nhấn enter, Đó sẽ là cách tốt nhất
ytpillai

1
@ytpillai, Ah, nhưng điều đó cho tôi lời nhắc ở phía dưới. Một giải pháp, không nghi ngờ gì, nhưng vẫn gây ra một số thuận tiện.
John Red

Câu trả lời:


97

"Cls" và "xóa" là các lệnh sẽ xóa thiết bị đầu cuối (tức là dấu nhắc DOS hoặc cửa sổ thiết bị đầu cuối). Từ ảnh chụp màn hình của bạn, bạn đang sử dụng trình bao trong IDLE, điều này sẽ không bị ảnh hưởng bởi những điều đó. Thật không may, tôi không nghĩ có một cách để xóa màn hình trong IDLE. Điều tốt nhất bạn có thể làm là cuộn màn hình xuống rất nhiều dòng, ví dụ:

print "\n" * 100

Mặc dù bạn có thể đặt cái này trong một hàm:

def cls(): print "\n" * 100

Và sau đó gọi nó khi cần là cls()


13
Nó xóa màn hình nhưng bạn vẫn nhận được lời nhắc ">>>" ở dòng cuối cùng ở trên cùng, mà tôi đoán làm cho nó kém hiệu quả hơn ... vẫn là +1 cho màn hình rõ ràng
Invictus

10
Python 3.4.2 - Tôi đã phải đặt "\ n" và * 100 trong ngoặc đơn, vì vậy:print ("\n" * 100)
cody.codes

4
Điều này sẽ không xóa màn hình, tôi vẫn có thể cuộn lại!
esoterik

2
ctrl + jcũng hoạt động. Có thể hữu ích bao gồm cả điều đó. stackoverflow.com/a/11993793/4871483
ytpillai

1
Lưu ý đây là thẻ python. Không phiên bản cụ thể. Đối với tất cả người dùng python 3.x, đó làprint('\n'*100)
Luke

83

os.system('clear')hoạt động trên linux. Nếu bạn đang chạy windows hãy thử os.system('CLS')thay thế.

Bạn cần nhập os trước như thế này:

import os

13
Os.system ('CLS') hoạt động trong Windows. (Python 2.6). Màn hình kết quả bị xóa, chỉ hiển thị "0", mà tôi giả sử là giá trị trả về cho CLS, ở trên cùng. Dòng tiếp theo có dấu nhắc >>>.
mjv

34
điều này thực hiện cuộc gọi os để bám vào dấu nhắc lệnh bên ngoài và không tương tác với w / Idle
bunglestink

15
nhàn rỗi không phải là một cửa sổ giao diện điều khiển. Cả xóa và cls hoạt động trên cửa sổ giao diện điều khiển / thiết bị đầu cuối.
Bryan Oakley

15
Câu hỏi là 'màn hình rõ ràng trong IDLE', các phương pháp trên chắc chắn không hoạt động trên máy tính của tôi
Élektra

20
Tại sao điều này được nâng cao? Điều này sẽ mở một dấu nhắc lệnh mới, xóa nó và đóng nó
ytpillai

39

Hầu hết các câu trả lời, ở đây đều xóa màn hình nhắc DOS, với các lệnh xóa, đây không phải là câu hỏi. Các câu trả lời khác ở đây, là in các dòng trống để hiển thị hiệu ứng xóa màn hình.

Câu trả lời đơn giản nhất của câu hỏi này là

Không thể xóa shell IDLE python mà không có một số tích hợp mô-đun bên ngoài. Nếu bạn thực sự muốn có được một vỏ tươi nguyên chất trống, chỉ cần đóng vỏ trước đó và chạy lại nó


3
Đây là một câu trả lời tốt, trực tiếp và thiết thực cho câu hỏi này; đóng không hoạt động, để tệp mở, chạy lại tệp và giờ không có màn hình mới.
Mike_K

@Mike_K, nó có thể hữu ích, nhưng không bao giờ. Ngay bây giờ tôi có một màn hình bị tách (một cuốn sách <|> nhàn rỗi). Khi tôi kiểm tra lại Idle, màn hình mới sẽ ở vị trí / kích thước mặc định. Vì vậy, nó sẽ nhận được rất nhàm chán.
sdlins

38

ctrl+ Lxóa màn hình trên Ubuntu Linux.


Ngoài ra trên Red Hat / Fedora / CentOS
DtechNet

1
Trên Windows cũng vậy, nếu bạn sử dụng IDLEx. Chúc mừng! Thật hạnh phúc khi cuối cùng đã nhận được một giải pháp đơn giản!
John Red

Không hoạt động trong Ubuntu 18.04. Ít tệ hơn ở đây là sử dụng CTRL+ Jnhiều lần.
sdlins

@slinstj đã đóng nó hoàn toàn trên các cửa sổ
Mubarek

Đã thêm vào bản hack hôm nay của tôi! Cũng hoạt động như một nét duyên dáng trong MacOS!
xtornasol512

21

Một phần mở rộng để xóa vỏ có thể được tìm thấy trong Số phát hành 6143 dưới dạng "yêu cầu tính năng". Phần mở rộng này được bao gồm với IdleX .


1
Đây là một phần mở rộng tuyệt vời cho Python Idle. Cảm ơn bạn rất nhiều!
Indrajit

19
>>> import os

>>>def cls():
...    os.system("clear")
...
>>>cls()

Điều đó là hoàn hảo. Không in '0'.


Đẹp, đơn giản, làm những gì nó nói. Hoặc import oschỉ sau khi gõ os.system("clear")mặc dù chức năng này rất tiện dụng nếu bạn thường xuyên cần xóa màn hình.
Dave Everitt

1
os.system ("rõ ràng") đã làm việc. Điều này làm việc cho tôi, nhưng tôi phải gõ "cls ()"
j0h

Khi tôi thử điều này, dòng lệnh trả về <function cls tại 0x024D25D0> và bảng điều khiển không rõ ràng
ericgrosse

Câu trả lời hay nhất cho đến nay
hello123

@ericgrosse bạn cần gõ cls (), không phải cls
Banoona


7

Cách để thực thi các lệnh trong Python 2.4+ là sử dụng mô đun quy trình con . Bạn có thể sử dụng nó giống như cách bạn sử dụng os.system.

import subprocess
subprocess.call("clear") # linux/mac
subprocess.call("cls", shell=True) # windows

Nếu bạn đang thực hiện điều này trong bảng điều khiển python, bạn sẽ cần phải làm gì đó để ẩn giá trị trả về (cho một trong hai os.systemhoặc subprocess.call), như gán nó cho một biến:

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

TracBack (cuộc gọi gần đây nhất vừa qua): Tệp "<pyshell # 1>", dòng 1, trong <module> sub process.call ("cls") Tệp "C: \ Python26 \ lib \ sub process.py", dòng 444, trong gọi lại Popen (* popenargs, ** kwargs) .wait () Tệp "C: \ Python26 \ lib \ sub process.py ", dòng 595, trong init errread, errwrite) Tệp "C: \ Python26 \ lib \ sub process ", dòng 804, trong _execute_child startupinfo) WindowsError: [Lỗi 2] Hệ thống không thể tìm thấy tệp được chỉ định
elysium nuốt chửng

1
Hmm .. Đó là những gì tôi nhận được khi không sử dụng Windows và do đó không thể kiểm tra nó. Hãy thử
sub process.call


4

Tệp -> Cửa sổ mới

Trong cửa sổ mới **

Chạy -> Python Shell

Vấn đề với phương pháp này là nó sẽ xóa tất cả những thứ bạn đã xác định, chẳng hạn như các biến.

Ngoài ra, bạn chỉ nên sử dụng dấu nhắc lệnh.

mở dấu nhắc lệnh

gõ "cd c: \ python27"

gõ "python example.py", bạn phải chỉnh sửa điều này bằng IDLE khi nó không ở chế độ tương tác. Nếu bạn đang ở trong python shell, tập tin -> cửa sổ mới.

Lưu ý rằng example.txt cần nằm trong cùng thư mục với C: \ python27 hoặc bất kỳ thư mục nào bạn đã cài đặt python.

Sau đó, từ đây, bạn chỉ cần nhấn phím mũi tên LÊN trên bàn phím của bạn. Bạn chỉ cần chỉnh sửa example.txt, sử dụng CTRL + S, sau đó quay lại dấu nhắc lệnh, nhấn phím mũi tên LÊN, nhấn enter.

Nếu dấu nhắc lệnh quá đông, chỉ cần gõ "clr"

Lệnh "clr" chỉ hoạt động với dấu nhắc lệnh, nó sẽ không hoạt động với IDLE.


3
Chỉ cần nói, nhưng tôi tin rằng câu hỏi đang hỏi 'Làm thế nào để bạn xóa màn hình TRONG IDLE TỪ TRONG NỀN TẢNG PYTHON.
Élektra

Bắt đầu tập tin mới và chạy shell Python trong đó dường như là tùy chọn duy nhất có sẵn cho tôi, không có gì khác hoạt động. Cảm ơn!
Serge Zakharov

4

Có vẻ như không có cách nào trực tiếp để xóa bảng điều khiển IDLE.

Một cách tôi làm là sử dụng exit () làm lệnh cuối cùng trong tập lệnh python của tôi (.py). Khi tôi chạy tập lệnh, nó luôn mở một giao diện điều khiển mới và nhắc nhở trước khi thoát.

Ưu điểm: Bảng điều khiển được khởi chạy mới mỗi khi tập lệnh được thực thi. Nhược điểm: Bảng điều khiển được khởi chạy mới mỗi khi tập lệnh được thực thi.


2

Bạn có thể tạo một kịch bản AutoHotKey .

Để đặt ctrl-r thành một phím nóng để xóa vỏ:

^r::SendInput print '\n' * 50 {Enter}

Chỉ cần cài đặt AutoHotKey, đặt phần trên vào một tệp có tên idle_clear.ahk, chạy tệp và phím nóng của bạn đang hoạt động.


2

Không có giải pháp nào trong số này hoạt động với tôi trên Windows 7 và trong IDLE. Sử dụng PowerShell, chạy Python trong đó và thoát ra để gọi "cls" trong PowerShell để xóa cửa sổ.

Nhược điểm: Giả sử Python đã có trong biến PATH. Ngoài ra, điều này sẽ xóa các biến Python của bạn (mặc dù vậy cũng khởi động lại shell).

PROS: Giữ lại mọi tùy chỉnh cửa sổ bạn đã thực hiện (màu sắc, cỡ chữ).


2

Có vẻ như không thể làm điều đó mà không có bất kỳ thư viện bên ngoài.

Một cách khác nếu bạn đang sử dụng windows và không muốn mở và đóng shell mỗi khi bạn muốn xóa nó bằng cách sử dụng dấu nhắc lệnh của windows.

  • Nhập pythonvà nhấn enter để chuyển dấu nhắc lệnh windows sang python idle (đảm bảo python đã được cài đặt).

  • Nhập quit()và nhấn enter để biến nó trở lại dấu nhắc lệnh của windows.

  • Nhập clsvà nhấn enter để xóa dấu nhắc lệnh / shell windows.


2

Tôi muốn giới thiệu bạn sử dụng Thonny IDE cho Python. Shell của nó có tùy chọn "Clear Shell" và bạn cũng có thể theo dõi các biến được tạo trong một danh sách riêng. Nó gỡ lỗi rất tốt ngay cả khi so sánh với các IDE hiện đại. Bạn cũng có thể viết mã trong tệp python cùng với quyền truy cập vào shell tại cùng một nơi.

Và nó rất nhẹ!


2

" Lệnh + L " cho MAC OS X.

" kiểm soát + L " cho Ubuntu

Xóa dòng cuối cùng trên phiên tương tác


Tôi không biết về tính năng này, cảm ơn Luôn viết những gì lệnh của bạn làm.
Priyank Pathak

1

Như mark.ribau đã nói, dường như không có cách nào để xóa tiện ích Văn bản ở chế độ rảnh. Người ta phải chỉnh sửa EditorWindow.pymô-đun và thêm một phương thức và một mục menu trong lớp EditorWindow có chức năng như sau:

self.text.tag_remove("sel", "1.0", "end")
self.text.delete("1.0", "end")

và có lẽ một số quản lý thẻ mà tôi không biết.


1

Cách tốt nhất để làm điều đó trên windows là sử dụng dấu nhắc lệnh 'cmd' và truy cập thư mục python, có thể tìm thấy dấu nhắc lệnh trên menu start> run> cmd

C:\>cd Python27
C:\Python27>python.exe
Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>import os
>>>os.system('cls')  #This will clear the screen and return the value 0

2
Chỉ nói, nhưng tôi tin rằng câu hỏi đang hỏi 'Làm thế nào để bạn xóa màn hình TRONG IDLE'. (Nhấn mạnh vào IN IDLE)
Élektra

1

dùng cái này

for num in range(1,100):
    print("\n")

Hoạt động, nhưng bạn kết thúc với một khoảng cách cuộn cực kỳ dài nếu bạn muốn xem một cái gì đó từ trước đó.
Élektra

Cố gắng giảm phạm vi (1,10):
Tauseef

@Xenon Nhưng nếu ý tưởng là để xóa cửa sổ, vì vậy người dùng không thể có thể xem một cái gì đó từ trước đó.
Sam

0

Ảnh chụp màn hình của bạn cho thấy bạn đang sử dụng IDLE. cls/ clearsẽ không làm việc cho bạn.


5
Đó không phải là một câu trả lời hay; OP đã không yêu cầu "những gì KHÔNG giúp tôi xóa cửa sổ IDLE của Python".
DeFazer

-1
from subprocess import call as c

def cls():

    c("cls",shell=True)

print([x for x in range(10000)])

cls()

Bất cứ khi nào bạn muốn xóa bảng điều khiển, hãy gọi hàm cls, nhưng lưu ý rằng chức năng này sẽ chỉ xóa màn hình trong Windows nếu bạn đang chạy Python Script bằng dấu nhắc cmd, nó sẽ không xóa bộ đệm nếu bạn chạy bằng IDLE.


2
Chỉ cần nói, nhưng tôi tin rằng câu hỏi đang hỏi 'Làm thế nào để bạn xóa màn hình TRONG IDLE TỪ TRONG NỀN TẢNG PYTHON.
Élektra

-1

Tôi đã nhận nó với:

import console 
console.clear()

nếu bạn muốn thực hiện nó trong tập lệnh của mình hoặc nếu bạn đang ở trong bảng điều khiển, chỉ cần nhấn xóa () và nhấn enter. Điều đó hoạt động trên Pyto trên iPhone. Nó có thể phụ thuộc vào giao diện điều khiển mặc dù.


Không có consolemô-đun trong IDLE.
AKX

Nó nói không có mô-đun giao diện điều khiển.
Musa

-2

Điều này làm việc cho tôi trong Windows:

print chr(12)


chr không được nhận dạng trong thiết bị đầu cuối IDLE
wbadry 27/03/18

Cảm ơn Joel. Làm việc cho tôi quá.

Tôi cũng làm việc với Windows, Spyder IDE và dường như là mã đơn giản nhất để đạt được kết quả mong muốn. {chr (12) là formfeed}
Ian

-4

Nếu bạn đang sử dụng thiết bị đầu cuối (tôi đang sử dụng ubfox), thì chỉ cần sử dụng kết hợp CTRL+ ltừ bàn phím để xóa tập lệnh python, thậm chí nó sẽ xóa tập lệnh đầu cuối ...


1
Chỉ cần nói, nhưng câu hỏi là về việc xóa màn hình IN IDLE, TỪ MỘT PIPTHON PIPTHON.
Élektra

OPLE IDLE được chỉ định.
wbadry

-5

Không cần phải viết chức năng của riêng bạn để làm điều này! Python có một chức năng rõ ràng.

Nhập nội dung sau vào dấu nhắc lệnh:

shell.clear()

Nếu sử dụng IPythoncho Windows, thì đó là

cls()

4
Có một số loại nhập khẩu cần thiết để làm điều này, bởi vì nó không làm việc cho tôi. Nếu có một nhập khẩu liên quan, bạn nên đưa nó vào phản hồi của bạn. Ngoài ra, câu hỏi là về việc xóa dấu nhắc IN IDLE .
Élektra
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.