Zoals de meeste Python-ontwikkelaars, houd ik meestal een consolevenster open met de Python-interpreter die wordt uitgevoerd om opdrachten te testen, dir()
-dingen, help() stuff
, enz.
Zoals bij elke console wordt de zichtbare achterstand van eerdere opdrachten en afdrukken na een tijdje onoverzichtelijk en soms verwarrend wanneer dezelfde opdracht meerdere keren wordt uitgevoerd. Ik vraag me af of, en hoe, de Python-interpreterconsole moet worden gewist.
Ik heb gehoord over het doen van een systeemaanroep en het aanroepen van cls
op Windows of clear
op Linux, maar ik hoopte dat er iets was dat ik de tolk zelf zou kunnen bevelen te doen.
Opmerking:ik gebruik Windows, dus Ctrl+L
werkt niet.
Antwoord 1, autoriteit 100%
Zoals je al zei, kun je een systeemoproep doen:
Voor Windows:
>>> import os
>>> clear = lambda: os.system('cls')
>>> clear()
Voor Linux zou het zijn:
>>> import os
>>> clear = lambda: os.system('clear')
>>> clear()
Antwoord 2, autoriteit 43%
hier iets handigs dat iets meer platformonafhankelijk is
import os
def cls():
os.system('cls' if os.name=='nt' else 'clear')
# now, to clear the screen
cls()
Antwoord 3, autoriteit 17%
Nou, hier is een snelle hack:
>>> clear = "\n" * 100
>>> print clear
>>> ...do some other stuff...
>>> print clear
Of om wat typen te besparen, plaats dit bestand in uw python-zoekpad:
# wiper.py
class Wipe(object):
def __repr__(self):
return '\n'*1000
wipe = Wipe()
Dan kun je dit vanuit de tolk doen zoals je wilt 🙂
>>> from wiper import wipe
>>> wipe
>>> wipe
>>> wipe
Antwoord 4, autoriteit 7%
Je hebt een aantal manieren om dit op Windows te doen:
1. Sneltoets gebruiken:
Press CTRL + L
2. De systeemaanroepmethode gebruiken:
import os
cls = lambda: os.system('cls')
cls()
3. 100 keer nieuwe regel afdrukken:
cls = lambda: print('\n'*100)
cls()
5, Autoriteit 5%
Dit is het eenvoudigste dat je kunt doen en het vereist geen extra bibliotheken. Het zal het scherm wissen en terugkeren >>>
naar de linkerbovenhoek.
print("\033[H\033[J", end="")
UPDATE: Toegevoegd extra parameter end=""
volgens commentaar door Adam Jenča om te voorkomen dat het nieuwe lijnteken wordt afgedrukt en nu retourneert het >>>
naar de Echt top linker hoek.
6, Autoriteit 5%
De snelste en gemakkelijkste manier zonder twijfel is CTRL kbd>+ L kbd>.
Dit is hetzelfde voor OS X op de terminal.
7, Autoriteit 3%
Mijn manier om dit te doen is om een functie als SO te schrijven:
import os
import subprocess
def clear():
if os.name in ('nt','dos'):
subprocess.call("cls")
elif os.name in ('linux','osx','posix'):
subprocess.call("clear")
else:
print("\n") * 120
Bel vervolgens clear()
om het scherm te wissen.
Dit werkt op Windows, OSX, Linux, BSD ... Alle OSES.
8, Autoriteit 2%
Hier is een crossplatform (Windows / Linux / Mac / Waarschijnlijk anderen die u kunt toevoegen in de IF-cheque) Versie FIPPET I Made Combining Informatie gevonden in deze vraag:
import os
clear = lambda: os.system('cls' if os.name=='nt' else 'clear')
clear()
hetzelfde idee, maar met een lepel syntactische suiker:
import subprocess
clear = lambda: subprocess.call('cls||clear', shell=True)
clear()
Antwoord 9, autoriteit 2%
De perfecte cls:
cls = lambda: print("\033c\033[3J", end='')
cls()
Of direct:
print("\033c\033[3J", end='')
Antwoord 10, autoriteit 2%
Wiper is cool, het goede eraan is dat ik er geen '()' omheen hoef te typen.
Hier is een kleine variatie op
# wiper.py
import os
class Cls(object):
def __repr__(self):
os.system('cls')
return ''
Het gebruik is vrij eenvoudig:
>>> cls = Cls()
>>> cls # this will clear console.
Antwoord 11, autoriteit 2%
voor de mac-gebruiker binnen het type python-console
import os
os.system('clear')
voor ramen
os.system('cls')
Antwoord 12
Ik weet niet zeker of de "shell" van Windows dit ondersteunt, maar op Linux:
print "\033[2J"
https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes
Naar mijn mening is het in het algemeen een slecht idee om cls
te bellen met os
. Stel je voor dat het me lukt om de opdracht cls of clear op je systeem te wijzigen, en je voert je script uit als admin of root.
Antwoord 13
Hier is de definitieve oplossing die alle andere antwoorden samenvoegt. Kenmerken:
- U kunt kopiëren-plakken de code in uw shell of script.
-
U kunt Gebruik het zoals u wilt:
>>> clear() >>> -clear >>> clear # <- but this will only work on a shell
-
U kunt import IT als een module:
>>> from clear import clear >>> -clear
-
U kunt bel it als een script:
$ python clear.py
-
Het is echt multiplatform ; Als het je systeem niet kan herkennen
(ce
,nt
,dos
OFposix
) Het valt terug naar het afdrukken van lege regels.
U kunt hier het [FULL-bestand downloaden: https://gist.github.com/3130325
Of als u alleen op zoek bent naar de code:
class clear:
def __call__(self):
import os
if os.name==('ce','nt','dos'): os.system('cls')
elif os.name=='posix': os.system('clear')
else: print('\n'*120)
def __neg__(self): self()
def __repr__(self):
self();return ''
clear=clear()
14
Ik gebruik iter en de inheemse terminal-app voor Mac OS.
Ik druk gewoon op ⌘ + k
15
Gebruik inactief. Het heeft veel handige functies. CTRL + F6 kbd>Reset bijvoorbeeld de console. Sluiten en openen van de console zijn goede manieren om het op te ruimen.
16
Als u het niet door code hoeft te doen, drukt u op CTRL + L
17
De eenvoudigste manier is om OS-module
te gebruiken
>>> import os
>>> clear = lambda: os.system('clear')
>>> clear()
18
Ik gebruik MingW / bash op Windows XP, SP3.
(Plak dit in .pythonstartup)
# Mijn ctrl-l al werkte al, maar dit kan iemand anders helpen
# verlaat snel aan de onderkant van het raam ...
import lezen van
Readline.parse_and_bind ('\ C-L: helder scherm')
# dit werkt in bash omdat ik het ook in .inputrc heb, maar voor sommigen
# reden waarom het wordt gedaald als ik in Python ga
Readline.parse_and_bind ('\ C-Y: kill-whole-line')
Ik kon niet meer uit het typen van 'exit ()' en was blij met de trucs van Martineau / Triptych:
Ik heb het enigszins ontdekt (stopte het in .pythonstartup)
class exxxit():
"""Shortcut for exit() function, use 'x' now"""
quit_now = exit # original object
def __repr__(self):
self.quit_now() # call original
x = exxxit()
Py2.7.1>help(x)
Help on instance of exxxit in module __main__:
class exxxit
| Shortcut for exit() function, use 'x' now
|
| Methods defined here:
|
| __repr__(self)
|
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| quit_now = Use exit() or Ctrl-Z plus Return to exit
Antwoord 19
Het OS-commando clear
in Linux en cls
in Windows voert een "magische string" uit die u gewoon kunt afdrukken. Om de string te krijgen, voer je het commando uit met popen en sla je het op in een variabele voor later gebruik:
from os import popen
with popen('clear') as f:
clear = f.read()
print clear
Op mijn computer is de string '\x1b[H\x1b[2J'
.
Antwoord 20
Ik ben nieuw in python (echt heel nieuw) en in een van de boeken die ik lees om kennis te maken met de taal die ze leren, hoe je deze kleine functie kunt maken om de console te wissen van de zichtbare achterstand en eerdere opdrachten en afdrukken:
Shell openen / Nieuw document maken / Functie als volgt maken:
def clear():
print('\n' * 50)
Sla het op in de lib-map in je python-map (de mijne is C:\Python33\Lib)
De volgende keer dat u uw console wilt wissen, roept u de functie gewoon aan met:
clear()
dat is het.
PS: je kunt je functie een naam geven zoals je wilt. Ik heb mensen gezien die "wiper" "wipe" en variaties gebruiken.
Antwoord 21
Hier zijn twee leuke manieren om dat te doen:
1.
import os
# Clear Windows command prompt.
if (os.name in ('ce', 'nt', 'dos')):
os.system('cls')
# Clear the Linux terminal.
elif ('posix' in os.name):
os.system('clear')
2.
import os
def clear():
if os.name == 'posix':
os.system('clear')
elif os.name in ('ce', 'nt', 'dos'):
os.system('cls')
clear()
Antwoord 22
Gewoon invoeren
import os
os.system('cls') # Windows
os.system('clear') # Linux, Unix, Mac OS X
Antwoord 23
Als het op mac is, zou een simpele cmd + k
voldoende moeten zijn.
Antwoord 24
Arch Linux (getest in xfce4-terminal
met Python 3):
# Clear or wipe console (terminal):
# Use: clear() or wipe()
import os
def clear():
os.system('clear')
def wipe():
os.system("clear && printf '\e[3J'")
... toegevoegd aan ~/.pythonrc
clear()
wist schermwipe()
wist de volledige terminalbuffer
Antwoord 25
EDIT: ik heb zojuist "windows" gelezen, dit is voor linux-gebruikers, sorry.
In bash:
#!/bin/bash
while [ "0" == "0" ]; do
clear
$@
while [ "$input" == "" ]; do
read -p "Do you want to quit? (y/n): " -n 1 -e input
if [ "$input" == "y" ]; then
exit 1
elif [ "$input" == "n" ]; then
echo "Ok, keep working ;)"
fi
done
input=""
done
Sla het op als "whatyouwant.sh", chmod +x het en voer het volgende uit:
./whatyouwant.sh python
of iets anders dan python (inactief, wat dan ook).
Dit zal je vragen of je echt wilt afsluiten, zo niet, voer python dan opnieuw uit (of het commando dat je als parameter hebt gegeven).
Hiermee worden alles, het scherm en alle variabelen/objecten/alles dat u in python hebt gemaakt/geïmporteerd, gewist.
Typ in Python gewoon exit() als je wilt afsluiten.
Antwoord 26
Dit moet platformoverschrijdend zijn en gebruikt ook de voorkeurs subprocess.call
in plaats van os.system
volgens de os.system
-documenten. Zou moeten werken in Python >= 2.4.
import subprocess
import os
if os.name == 'nt':
def clearscreen():
subprocess.call("cls", shell=True)
return
else:
def clearscreen():
subprocess.call("clear", shell=True)
return
Antwoord 27
Wat dacht je hiervan voor een duidelijke
- os.system('cls')
Dat is zo kort als maar kan!
Antwoord 28
Ik ontdekte dat de eenvoudigste manier is om gewoon het venster te sluiten en een module/script uit te voeren om de shell opnieuw te openen.
Antwoord 29
>>> ' '*80*25
UPDATE: 80x25 is waarschijnlijk niet zo groot als consolevensters, dus om de echte console-afmetingen te krijgen, gebruikt u functies van pager-module. Python biedt niets vergelijkbaars van kerndistributie.
>>> from pager import getheight
>>> '\n' * getheight()