Adakah cara untuk menghapus jendela IDLE python?

154

Saya tahu ada topik serupa tentang konsol python, tapi saya tidak tahu apakah mereka sama. Saya mencoba sistem ("hapus") dan tidak berfungsi di sini.

Bagaimana cara menghapus jendela IDLE python?

melahap elysium
sumber
10
itu bukan duplikat, OP bertanya tentang cara menghapus shell IDLE, bukan konsol
Moha the mighty
1
Alasan ini tidak berhasil adalah karena Python memulai sesi shell baru dan menjalankan perintah cleardi sana. Ini juga menjelaskan mengapa cdtidak berfungsi system.os.
jkd
14
Tahan ctrl + jsebentar dan kemudian tekan enter, Itu akan menjadi cara terbaik
ytpillai
1
@ytpillai, Ah, tapi itu memberi saya prompt di bagian bawah. Sebuah solusi, tidak diragukan lagi, tetapi masih menyebabkan sedikit kenyamanan.
John Red

Jawaban:

97

"Cls" dan "clear" adalah perintah yang akan menghapus terminal (yaitu prompt DOS, atau jendela terminal). Dari tangkapan layar Anda, Anda menggunakan shell di dalam IDLE, yang tidak akan terpengaruh oleh hal-hal seperti itu. Sayangnya, saya tidak berpikir ada cara untuk menghapus layar di IDLE. Yang terbaik yang dapat Anda lakukan adalah menggulir layar ke bawah banyak garis, misalnya:

print "\n" * 100

Meskipun Anda bisa menempatkan ini dalam suatu fungsi:

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

Dan kemudian menyebutnya saat dibutuhkan cls()

Brian
sumber
13
Itu menghapus layar tetapi Anda masih mendapatkan prompt ">>>" di baris terakhir, bukan di atas, yang saya kira membuat kurang efisien ... masih +1 untuk layar jelas
Invictus
10
Python 3.4.2 - Saya harus membungkus "\ n" dan * 100 dalam tanda kurung, jadi:print ("\n" * 100)
cody.codes
4
Ini tidak akan menghapus layar, saya masih bisa gulir kembali ke atas!
esoterik
2
ctrl + jjuga berfungsi. Mungkin bermanfaat termasuk itu. stackoverflow.com/a/11993793/4871483
ytpillai
1
Perhatikan ini adalah tag python. Khusus bukan versi. Untuk semua pengguna python 3.xprint('\n'*100)
Luke
83

os.system('clear')bekerja di linux. Jika Anda menjalankan windows, coba os.system('CLS')saja.

Anda perlu mengimpor os terlebih dahulu seperti ini:

import os
Nadia Alramli
sumber
13
The os.system ('CLS') bekerja di Windows. (Python 2.6). Layar yang dihasilkan dihapus, hanya menampilkan "0", yang saya asumsikan adalah nilai pengembalian untuk CLS, di bagian atas. Baris selanjutnya memiliki prompt >>>.
mjv
35
ini membuat panggilan os ke cls di command prompt eksternal dan tidak berinteraksi dengan Idle
bunglestink
15
idle bukan jendela konsol. Baik clear dan cls beroperasi pada konsol / terminal windows.
Bryan Oakley
16
Pertanyaannya adalah 'clear screen IN IDLE' metode di atas tentu tidak berfungsi di komputer saya
Élektra
21
Mengapa ini dibalik? Ini akan membuka prompt perintah baru, menghapusnya, dan menutupnya
ytpillai
39

Sebagian besar jawaban, di sini membersihkan layar DOS prompt, dengan perintah pembersihan, yang bukan pertanyaannya. Jawaban lain di sini, adalah mencetak garis kosong untuk menunjukkan efek membersihkan layar.

Jawaban paling sederhana dari pertanyaan ini adalah

Tidak mungkin untuk menghapus shell python IDLE tanpa beberapa integrasi modul eksternal. Jika Anda benar-benar ingin mendapatkan shell segar murni kosong, tutup saja shell sebelumnya dan jalankan kembali

Abdul Rehman
sumber
3
Ini adalah jawaban yang baik, langsung, dan praktis untuk pertanyaan ini; tutup idle, biarkan file terbuka, jalankan file lagi dan idle sekarang memiliki layar baru.
Mike_K
@ Mike_K, ini bisa berguna, tetapi tidak pernah. Saat ini saya memiliki layar terpisah (buku <|> idle). Ketika saya menjalankan kembali Idle, layar baru muncul di posisi / dimensi default. Jadi, itu akan sangat membosankan.
sdlins
38

ctrl+ Lmembersihkan layar di Ubuntu Linux.

shxfee
sumber
Juga di Red Hat / Fedora / CentOS
DtechNet
1
Di Windows juga, jika Anda menggunakan IDLEx. Bersulang! Sangat senang akhirnya mendapatkan solusi sederhana!
John Red
Tidak bekerja di Ubuntu 18.04. Yang lebih buruk di sini adalah menggunakan CTRL+ Jbeberapa kali.
sdlins
@slinstj yang menutup semuanya di windows
Mubarek
Ditambahkan ke hack hari ini! Juga berfungsi seperti pesona di MacOS!
xtornasol512
21

Perpanjangan untuk membersihkan shell dapat ditemukan di Issue6143 sebagai "permintaan fitur". Ekstensi ini disertakan dengan IdleX .

Roger
sumber
1
Ini adalah ekstensi yang cemerlang untuk Python Idle. Terima kasih banyak!
Indrajit
19
>>> import os

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

Itu benar-benar sempurna. Tidak ada '0' yang dicetak.

Derk Smith
sumber
Bagus, sederhana, melakukan apa yang dikatakannya. Atau setelah import oscukup ketik os.system("clear")walaupun fungsinya berguna jika Anda sering perlu menghapus layar.
Dave Everitt
1
os.system ("clear") berfungsi. Ini berfungsi untuk saya, tetapi saya harus mengetikkan "cls ()"
j0h
Ketika saya mencoba ini, baris perintah kembali <function cls at 0x024D25D0> dan konsol tidak jelas
ericgrosse
Jawaban terbaik sejauh ini
hello123
@ ericgrosse Anda perlu mengetikkan cls (), bukan cls
Banoona
9

Tampaknya tidak ada cara untuk menghapus buffer 'shell' IDLE.

Mark Ribau
sumber
1
bugs.python.org/issue6143 memiliki ekstensi untuk menghapus shell, dan disertakan dengan IdleX.
Roger
7

Cara untuk mengeksekusi perintah dalam Python 2.4+ adalah dengan menggunakan modul subproses . Anda bisa menggunakannya dengan cara yang sama seperti yang Anda gunakan os.system.

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

Jika Anda menjalankan ini di konsol python, Anda harus melakukan sesuatu untuk menyembunyikan nilai kembali (untuk salah satu os.systematau subprocess.call), seperti menugaskannya ke variabel:

cls = subprocess.call("cls", shell=True)
Rudd Zwolinski
sumber
Traceback (panggilan terakhir terakhir): File "<pyshell # 1>", baris 1, dalam <module> subprocess.call ("cls") File "C: \ Python26 \ lib \ subprocess.py", baris 444, dalam panggil return Popen (* popenargs, ** kwargs) .wait () File "C: \ Python26 \ lib \ subprocess.py", baris 595, dalam init errread, errwrite) File "C: \ Python26 \ lib \ subprocess.py ", line 804, dalam _execute_child startupinfo) WindowsError: [Kesalahan 2] Sistem tidak dapat menemukan file yang ditentukan
melahap elysium.
1
Hmm .. Itulah yang saya dapatkan karena tidak menggunakan Windows dan karenanya tidak bisa mengujinya. Coba subprocess.call ("cls", shell = True)
Rudd Zwolinski
5

Saya suka menggunakan:

import os
clear = lambda : os.system('cls') # or clear for Linux

clear()
lfsando
sumber
Sepertinya jawaban itu sudah disediakan
OneCricketeer
4

File -> Jendela Baru

Di jendela baru **

Jalankan -> Python Shell

Masalah dengan metode ini adalah ia akan menghapus semua hal yang Anda definisikan, seperti variabel.

Atau, Anda harus menggunakan command prompt.

buka command prompt

ketik "cd c: \ python27"

ketik "python example.py", Anda harus mengedit ini menggunakan IDLE ketika tidak dalam mode interaktif. Jika Anda berada di shell python, file -> jendela baru.

Perhatikan bahwa example.py harus berada di direktori yang sama dengan C: \ python27, atau direktori apa pun yang Anda pasang python.

Kemudian dari sini, Anda cukup menekan tombol panah ATAS pada keyboard Anda. Anda cukup mengedit example.py, gunakan CTRL + S, lalu kembali ke command prompt, tekan tombol panah atas, tekan enter.

Jika prompt perintah terlalu ramai, cukup ketik "clr"

Perintah "clr" hanya bekerja dengan command prompt, itu tidak akan bekerja dengan IDLE.

pengecut anonim
sumber
3
Hanya Mengatakan, tetapi saya percaya bahwa pertanyaannya adalah bertanya 'Bagaimana Anda menghapus layar DI IDLE DARI DALAM PYTHON SCRIPT.
Élektra
Memulai file baru dan menjalankan shell Python di dalamnya tampaknya menjadi satu-satunya pilihan yang tersedia bagi saya, tidak ada yang berhasil. Terima kasih!
Sergey Zakharov
4

Sepertinya tidak ada cara langsung untuk membersihkan konsol IDLE.

Salah satu cara saya melakukannya adalah menggunakan exit () sebagai perintah terakhir dalam skrip python saya (.py). Ketika saya menjalankan skrip, selalu membuka konsol baru dan meminta sebelum keluar.

Terbalik: Konsol diluncurkan segar setiap kali skrip dieksekusi. Kelemahan: Konsol diluncurkan segar setiap kali skrip dieksekusi.

Sandeep Gaadhe
sumber
2

Anda dapat membuat skrip Autohotkey .

Untuk mengatur ctrl-r ke hotkey untuk menghapus shell:

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

Cukup instal Autohotkey, letakkan di atas dalam file yang disebut idle_clear.ahk, jalankan file, dan hotkey Anda aktif.

Berantakan
sumber
2

Tak satu pun dari solusi ini bekerja untuk saya di Windows 7 dan di dalam IDLE. Lanjutkan menggunakan PowerShell, jalankan Python di dalamnya dan keluar untuk memanggil "cls" di PowerShell untuk menghapus jendela.

CONS: Menganggap Python sudah ada dalam variabel PATH. Juga, ini menghapus variabel Python Anda (meskipun demikian restart shell).

PROS: Mempertahankan kustomisasi jendela apa pun yang Anda buat (warna, ukuran font).

Draghon
sumber
2

Tampaknya mustahil untuk melakukannya tanpa perpustakaan eksternal.

Cara alternatif jika Anda menggunakan windows dan tidak ingin membuka dan menutup shell setiap kali Anda ingin menghapusnya adalah dengan menggunakan command prompt windows.

  • Ketik pythondan tekan enter untuk mengubah prompt perintah windows ke python idle (pastikan python diinstal).

  • Ketik quit()dan tekan enter untuk mengubahnya kembali ke command prompt windows.

  • Ketik clsdan tekan enter untuk menghapus command prompt / shell windows.

Ari
sumber
2

Saya akan merekomendasikan Anda untuk menggunakan IDE Thonny untuk Python. Shell-nya memiliki opsi "Clear Shell" dan Anda juga dapat melacak variabel yang dibuat dalam daftar terpisah. Ini debugging sangat baik bahkan dibandingkan dengan IDE modern. Anda juga dapat menulis kode dalam file python bersama dengan akses ke shell di tempat yang sama.

Dan itu ringan!

Zaheer
sumber
2

" command + L " untuk MAC OS X.

" control + L " untuk Ubuntu

Menghapus baris terakhir pada sesi interaktif

Darshan NS
sumber
Saya tidak tahu tentang fitur ini, terima kasih Selalu tulis apa perintah Anda.
Priyank Pathak
1

Seperti yang dikatakan mark.ribau, tampaknya tidak ada cara untuk menghapus widget Teks dalam keadaan idle. Seseorang harus mengedit EditorWindow.pymodul dan menambahkan metode dan item menu di kelas EditorWindow yang melakukan sesuatu seperti:

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

dan mungkin beberapa manajemen tag lagi yang tidak saya sadari.

tzot
sumber
1

Cara terbaik untuk melakukannya di windows adalah dengan menggunakan command prompt 'cmd' dan mengakses direktori python prompt perintah dapat ditemukan di menu mulai> 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
Al-Ani
sumber
2
Hanya Mengatakan, tapi saya percaya bahwa pertanyaannya adalah bertanya 'Bagaimana Anda menghapus layar DI IDLE'. (Penekanan pada IN IDLE)
Élektra
1

Gunakan ini

for num in range(1,100):
    print("\n")
Tauseef
sumber
Berhasil, tetapi Anda berakhir dengan jarak gulir yang sangat panjang jika Anda ingin melihat sesuatu dari sebelumnya.
Élektra
Cobalah untuk mengurangi kisaran (1,10):
Tauseef
@Xenon Tetapi jika idenya adalah untuk membersihkan jendela, maka pengguna seharusnya tidak dapat dapat melihat sesuatu dari sebelumnya.
Sam
0

Tangkapan layar Anda menunjukkan Anda menggunakan IDLE. clsSaya cleartidak akan bekerja untuk Anda.

orip
sumber
5
Itu bukan jawaban yang bagus; OP tidak meminta "apa yang TIDAK AKAN membantu saya untuk membersihkan jendela IDLE Python".
DeFazer
-1
from subprocess import call as c

def cls():

    c("cls",shell=True)

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

cls()

Setiap kali Anda ingin menghapus konsol, panggil fungsi cls, tetapi perhatikan bahwa fungsi ini akan menghapus layar di Windows hanya jika Anda menjalankan Python Script menggunakan cmd prompt, itu tidak akan menghapus buffer jika Anda menjalankan dengan IDLE.

Akash Rana
sumber
2
Hanya Mengatakan, tetapi saya percaya bahwa pertanyaannya adalah bertanya 'Bagaimana Anda menghapus layar DI IDLE DARI DALAM PYTHON SCRIPT.
Élektra
-1

Saya mengerti:

import console 
console.clear()

jika Anda ingin melakukannya di skrip Anda, atau jika Anda berada di konsol cukup ketuk jelas () dan tekan enter. Itu bekerja pada Pyto di iPhone. Mungkin tergantung pada konsol.

Bryan Aneux
sumber
Tidak ada consolemodul di IDLE.
AKX
Dikatakan tidak ada modul konsol.
Musa
-2

Ini berfungsi untuk saya di Windows:

print chr(12)

Joel Vroom
sumber
chr tidak dikenali di terminal IDLE
wbadry
Joel terima kasih. Bekerja untuk saya juga.
Bekerja untuk saya juga di Windows, Spyder IDE, dan tampaknya menjadi kode paling sederhana untuk mencapai hasil yang diinginkan. {chr (12) adalah formfeed}
Ian
-4

Jika Anda menggunakan terminal (saya menggunakan ubuntu), maka cukup gunakan kombinasi CTRL+ ldari keyboard untuk menghapus skrip python, bahkan menghapus skrip terminal ...

Arbaaz
sumber
1
Hanya mengatakan, tetapi pertanyaannya adalah tentang membersihkan layar DI IDLE, DARI A PYTHON SCRIPT.
Élektra
OP IDLE yang ditentukan.
Wbadry
-5

Tidak perlu menulis fungsi Anda sendiri untuk melakukan ini! Python memiliki fungsi yang jelas.

Ketik yang berikut ini di command prompt:

shell.clear()

Jika menggunakan IPythonuntuk Windows, itu

cls()
Michael Vogel
sumber
4
Apakah ada semacam impor yang diperlukan untuk melakukan ini, karena itu tidak berhasil untuk saya. Jika ada impor yang terlibat, Anda harus memasukkannya ke dalam respons Anda. Juga, pertanyaannya adalah tentang menghapus IN IDLE prompt .
Élektra