Hanya pertanyaan singkat:
Bagaimana Anda membersihkan layar di shell? Saya telah melihat cara seperti:
import os
os.system('cls')
Ini hanya membuka windows cmd, membersihkan layar dan menutup tetapi saya ingin jendela shell dibersihkan
(PS: Saya tidak tahu ini membantu, tetapi saya menggunakan Python versi 3.3.2)
Terima kasih :)
Jawaban:
Untuk macOS / OS X, Anda dapat menggunakan modul subproses dan memanggil 'cls' dari shell:
import subprocess as sp sp.call('cls', shell=True)
Untuk mencegah '0' muncul di atas jendela, ganti baris ke-2 dengan:
tmp = sp.call('cls', shell=True)
Untuk Linux, Anda harus mengganti
cls
perintah denganclear
tmp = sp.call('clear', shell=True)
sumber
import subprocess as sp sp.call('clear',shell=True)
yang berfungsi, kecuali ada0
di bagian atas jendela terminal.ctrl+L
sp.call('cls', shell=True);
Bagaimana dengan pintasan CTRL+ L?
Ini berfungsi untuk semua shell misalnya Python, Bash, MySQL, MATLAB, dll.
sumber
import os os.system('cls') # For Windows os.system('clear') # For Linux/OS X
sumber
os.system('clear')
untuk terminal Mac OS X (dikonfirmasi untuk bekerja dengan shell defaultbash
,, dan juga untukcsh
).Jenis hal yang Anda cari dapat ditemukan di modul kutukan.
yaitu
import curses # Get the module stdscr = curses.initscr() # initialise it stdscr.clear() # Clear the screen
Catatan penting
Hal penting yang harus diingat adalah sebelum keluar, Anda perlu mengatur ulang terminal ke mode normal, ini dapat dilakukan dengan baris berikut:
curses.nocbreak() stdscr.keypad(0) curses.echo() curses.endwin()
Jika tidak, Anda akan mendapatkan semua jenis perilaku aneh. Untuk memastikan bahwa ini selalu dilakukan, saya sarankan menggunakan modul atexit, seperti:
import atexit @atexit.register def goodbye(): """ Reset terminal from curses mode on exit """ curses.nocbreak() if stdscr: stdscr.keypad(0) curses.echo() curses.endwin()
Mungkin akan melakukannya dengan baik.
sumber
stdscr = curses.initscr()
berfungsi untuk membersihkan layar, danstdscr.clear()
tidak melakukan apa pun. Menggunakan Python3.4,stdscr = curses.initscr()
tidak membersihkan layar, tetapi menghilangkan kemampuan terminal untuk memproses baris baru. Ketika saya menekan enter berulang kali, ini memberikan yang berikut:>>> >>> >>> >>>
dan seterusnya. Saya masih bisa mengetik perintah, tetapi perintah itu tidak muncul. Juga, perilaku ini tetap ada bahkan ketika saya melakukanexit()
Python. HINDARI PENGGUNAAN!curses
modul mungkin mengalami masalah kompatibilitas (Windows vs. Mac vs. Linux)? Saya dapat mengonfirmasi bahwa masalah ini terjadi pada dua terminal Mac yang berbeda, setidaknya. Perilaku tersebut tetap ada di BASH tetapi tidak di CSH. Hmm .... Apakah menurut Anda saya harus menghubungi pengembang kutukan, pengembang shell, atau hanya bertanya pada komunitas SO? Terima kasih lagi!Berikut beberapa opsi yang dapat Anda gunakan di Windows
Pilihan pertama:
import os cls = lambda: os.system('cls') >>> cls()
Pilihan kedua:
cls = lambda: print('\n' * 100) >>> cls()
Opsi ketiga jika Anda berada di jendela REPL Python:
sumber
Selain menjadi pustaka CLI yang serba bisa,
click
juga menyediakan fungsi platform-agnostikclear()
:import click click.clear()
sumber
Fungsi ini berfungsi di semua OS (Unix, Linux, macOS, dan Windows)
Python 2 dan Python 3
import platform # For getting the operating system name import subprocess # For executing a shell command def clear_screen(): """ Clears the terminal screen. """ # Clear command as function of OS command = "cls" if platform.system().lower()=="windows" else "clear" # Action return subprocess.call(command) == 0
Di windows perintahnya adalah
cls
, dalam sistem mirip unix perintahnya adalahclear
.platform.system()
mengembalikan nama platform. Ex.'Darwin'
untuk macOS.subprocess.call()
melakukan panggilan sistem. Ex.subprocess.call(['ls','-l'])
sumber
Cara yang lebih mudah untuk membersihkan layar saat menggunakan python adalah dengan menggunakan Ctrl+ Lmeskipun itu berfungsi untuk shell serta program lain.
sumber
Jika Anda menggunakan terminal linux untuk mengakses python, maka cntrl + l adalah solusi terbaik untuk membersihkan layar
sumber
Saya menggunakan kelas yang hanya menggunakan salah satu metode di atas di belakang layar ... Saya perhatikan ini berfungsi di Windows dan Linux ... Saya suka menggunakannya karena lebih mudah untuk mengetikkan clear () daripada sistem ('clear' ) atau os.system ('clear')
pip3 install clear-screen from clear_screen import clear
dan kemudian ketika Anda ingin membersihkan cangkang:
clear()
sumber
menggunakan windows 10 dan pyhton3.5 saya telah menguji banyak kode dan tidak ada yang membantu saya lebih dari ini:
Pertama tentukan fungsi sederhana, fungsi ini akan mencetak 50 baris baru; (angka 50 akan tergantung pada berapa banyak baris yang dapat Anda lihat di layar Anda, sehingga Anda dapat mengubah nomor ini)
def cls(): print ("\n" * 50)
kemudian panggil saja sebanyak yang Anda inginkan atau butuhkan
cls()
sumber
Command+K
berfungsi dengan baik di OSX untuk membersihkan layar.Shift+Command+K
untuk hanya menghapus buffer scrollback.sumber
import curses stdscr = curses.initscr() stdscr.clear()
sumber
Subproses memungkinkan Anda memanggil "cls" untuk Shell.
import subprocess cls = subprocess.call('cls',shell=True)
Itu sesederhana yang saya bisa. Semoga berhasil untuk Anda!
sumber
Anda dapat Menggunakan Jendela Atau Linux Os
import os os.system('cls') os.system('clear')
Anda dapat menggunakan modul subproses
import subprocess as sp x=sp.call('cls',shell=True)
sumber
os.system('cls')
berfungsi dengan baik saat saya membukanya. Ini terbuka dengan gaya cmd.sumber
Daripada mengimpor semua kutukan atau membayar hanya untuk mendapatkan satu karakter kontrol, Anda cukup menggunakan (di Linux / macOS):
print(chr(27) + "[2J")
(Sumber: Hapus terminal dengan Python )
sumber
Berikut cara membuat perintah
cls
atau Anda sendiriclear
yang akan berfungsi tanpa memanggil fungsi apa pun secara eksplisit!Kami akan memanfaatkan fakta bahwa konsol python memanggil
repr()
untuk menampilkan objek di layar. Ini sangat berguna jika Anda memiliki shell python khusus Anda sendiri (dengan-i
opsi misalnya) dan Anda memiliki skrip pra-pemuatan untuk itu. Inilah yang Anda butuhkan:import os class ScreenCleaner: def __repr__(self): os.system('cls') # This actually clears the screen return '' # Because that's what repr() likes cls = ScreenCleaner()
Gunakan
clear
alih-alihcls
jika Anda menggunakan linux (dalamos
perintah dan nama variabel)!Sekarang jika Anda hanya menulis
cls
atauclear
di konsol - itu akan menghapusnya! Bahkan tidakcls()
atauclear()
- hanya variabel mentah. Ini karena python akan memanggilrepr(cls)
untuk mencetaknya, yang pada gilirannya akan memicu__repr__
fungsi kita .Mari kita uji:
>>> df;sag Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'df' is not defined >>> sglknas Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'sglknas' is not defined >>> lksnldn Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'lksnldn' is not defined >>> cls
Dan layarnya jernih!
Untuk memperjelas - kode di atas perlu diimpor di konsol seperti ini
from somefile import cls
Atau pra muat langsung dengan sesuatu seperti:
python -i my_pre_loaded_classes.py
sumber
Itulah cara terbaik:
>>>import os >>>def cls(): os.system('cls') >>>cls()
sumber
Untuk Python IDLE 3.8.1 Anda dapat memulai ulang Shell
CTRL + F6
Pada menu Klik pada menu Shell. Kemudian klik opsi Restart Shell.
sumber