Hallo,
gibt es in python einen Befehl mit dem man die konsole
(Windows und Linux) löschen kann. So was alla ClearScreen?
Einzelne Zeilen geht wohl unter Windows gar nicht, da es
kein funktionierendes ncurses modul gibt, oder?
Gruß
alpha
konsole löschen
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo alpha!alpha hat geschrieben:gibt es in python einen Befehl mit dem man die konsole
(Windows und Linux) löschen kann.
Probier es doch mal hiermit:
Code: Alles auswählen
import os, sys
try:
s = sys.winver
os.system("cls")
except:
os.system("clear")
Code: Alles auswählen
import os
try:
os.system("cls")
os.system("clear")
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hallo zusammen,
sollte es nicht auch mit
gehen, unter Linux gehts, was macht Windows?
Gruß
Dookie
sollte es nicht auch mit
Code: Alles auswählen
print "\x1b[2J"
Gruß
Dookie
Hallo Dookie!Dookie hat geschrieben:sollte es nicht auch mitgehen, unter Linux gehts, was macht Windows?Code: Alles auswählen
print "\x1b[2J"
Habe es gerade unter Windows ausprobiert --> funktioniert leider nicht
mfg
Gerold
-
- User
- Beiträge: 728
- Registriert: Sonntag 22. September 2002, 08:32
- Wohnort: Sauerland
- Kontaktdaten:
JeinDER Olf hat geschrieben:aber unter linux funkts oder was??
Bildschirm wird gelöscht, aber der Cursor wird nicht oben links plaziert. Damit es funktioniert, muss m. E. $TERM entsprechend definiert sein. Rufst du konsole auf ist $TERM xterm, bei einem ASCII Bildschirm ist das z. B. linux. Das sind meine Einstellungen (Fedora Core 1), kann auf anderen Systemen anders sein.
Klartextbefehle sind mir da lieber, auch wenn ich die nach OS unterscheiden muß.
Hans
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
unter Windows sollte \f gehen, zumindest hat das immer unter Dos funktioniert.
Unter Linux müsste man noch den Cursor mit einer weiteren escapesequence in die erste Zeile setzen.
Gruß
Dookie
Unter Linux müsste man noch den Cursor mit einer weiteren escapesequence in die erste Zeile setzen.
Gruß
Dookie
-
- User
- Beiträge: 728
- Registriert: Sonntag 22. September 2002, 08:32
- Wohnort: Sauerland
- Kontaktdaten:
Wo finde ich die ESC Sequenzen eigentlich? terminfo, termcap waren leider nicht sehr aussagekräftig (oder ich habs übersehen).Dookie hat geschrieben:Unter Linux müsste man noch den Cursor mit einer weiteren escapesequence in die erste Zeile setzen.
Hans
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi Hans,
hier:
http://home.t-online.de/home/claudiomai ... minal.html
oder hier:
http://www-user.tu-chemnitz.de/~heha/hs ... rminal.htm
Gruß
Dookie
hier:
http://home.t-online.de/home/claudiomai ... minal.html
oder hier:
http://www-user.tu-chemnitz.de/~heha/hs ... rminal.htm
Gruß
Dookie
-
- User
- Beiträge: 728
- Registriert: Sonntag 22. September 2002, 08:32
- Wohnort: Sauerland
- Kontaktdaten:
hmmm, sehr interessant.Ob ich das meinem Chef mal in die Startroutine einbaue
THX
Hans
Code: Alles auswählen
ESC[97;"Hallo"p belegt die Taste 'a' mit dem String "Hallo"
ESC[100;"dir /p";13p belegt die Taste 'd' mit dem String "dir /p" und einem abschließenden Enter.
THX
Hans
Bei mir kommt folgende Fehlermeldung, wenn ich die Datei kompiliere, bei der ich den Bildschirm löschen will:
Das ist der Code
Was mache ich falsch? Ich verwende Python3 unter Windows
Code: Alles auswählen
Sorry: IndentationError: unexpected unindent (SpielXY.py, line 8)
Code: Alles auswählen
import os
def BildLeeren():
try:
os.system("cls")
os.system("clear")
print("SpielXY\n")
print("-----Menü-----\n")
print("1. Starten")
print("2. Hilfe")
print("3. Info")
print("4. Beenden")
MenüAuswahl = input("Wählen sie aus: ")
BildLeeren()
Alle Achtung, da hast du aber ganz tief in der Geschichte des Boards gegraben. Ich gebe dir mal einen Hinweis: Welcher Teil fehlt dir zu einem vollständigen try-except-Konstrukt?
Das Leben ist wie ein Tennisball.
Google hilft Und Python ist ja immernoch das selbe.EyDu hat geschrieben:Alle Achtung, da hast du aber ganz tief in der Geschichte des Boards gegraben. Ich gebe dir mal einen Hinweis: Welcher Teil fehlt dir zu einem vollständigen try-except-Konstrukt?
Habe es so abgeändert:
Code: Alles auswählen
def BildLeeren():
try:
os.system("clear") # Unix
except:
os.system("cls") # Windows
Danke
MfG
Hallo,
mit Deinem 'try:.. except:..'-Konstrukt möchtest Du ja erreichen, dass, wenn 'os.system('clear')' nicht funktioniert (eine exception wirft), 'os.system('cls')' aufgerufen wird.
Das Problem dabei ist allerdings, dass 'os.system('clear')' keine exception wirft. Du versuchst also, eine exception abzufangen, die nicht kommen wird. Genaugenommen versuchst Du, alle exceptions abzufangen. Es wird trotzdem keine kommen...
Lies mal die Doku zu os.system.
Zudem halte ich es für wenig optimal, den Bildschirm auf diese Weise zu löschen. Warum verwendest Du nicht das curses-Modul?
mutetella
mit Deinem 'try:.. except:..'-Konstrukt möchtest Du ja erreichen, dass, wenn 'os.system('clear')' nicht funktioniert (eine exception wirft), 'os.system('cls')' aufgerufen wird.
Das Problem dabei ist allerdings, dass 'os.system('clear')' keine exception wirft. Du versuchst also, eine exception abzufangen, die nicht kommen wird. Genaugenommen versuchst Du, alle exceptions abzufangen. Es wird trotzdem keine kommen...
Lies mal die Doku zu os.system.
Zudem halte ich es für wenig optimal, den Bildschirm auf diese Weise zu löschen. Warum verwendest Du nicht das curses-Modul?
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit )
Unter anderem denken, daß sich bei Python nichts getan hat. Inzwischen gibt es nämlich das subprocess-Modul. Keine Ahnung, was Gerold bei seinem Beispiel geritten hat.Larucio hat geschrieben:Aber der Bildschirm wird noch nicht gelöscht? Was mach ich falsch?
Vielleicht, dass 2.4 erst sechs Monate nach seinem Beitrag erschienen ist? Nur so eine VermutungCM hat geschrieben:Keine Ahnung, was Gerold bei seinem Beispiel geritten hat.
Das Leben ist wie ein Tennisball.
Egal, ob mit os- oder subprocess-Modul: Ich wüsste nicht, wie man in diesem Fall mit 'try:..except:..' weiterkommt...
Es geht doch nicht darum, eine exception abzufangen, sondern das, was vom OS-Befehl zurückgegeben wird:
mutetella
EDIT: Meine Anmerkung zum curses-Modul war Blödsinn, da Du ja unter Windows arbeitest.
Allerdings könntest Du Dir mal Console anschauen. Ist ja vielleicht interessant...
Es geht doch nicht darum, eine exception abzufangen, sondern das, was vom OS-Befehl zurückgegeben wird:
Code: Alles auswählen
import subprocess
def clear_screen():
if subprocess.call('cls', shell=True) > 0:
subprocess.call('clear', shell=True)
EDIT: Meine Anmerkung zum curses-Modul war Blödsinn, da Du ja unter Windows arbeitest.
Allerdings könntest Du Dir mal Console anschauen. Ist ja vielleicht interessant...
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit )
Auch mit 2.4 wird try/except keine Lösung gewesen sein.EyDu hat geschrieben:Vielleicht, dass 2.4 erst sechs Monate nach seinem Beitrag erschienen ist? Nur so eine Vermutung
mutetellas Lösung finde ich gut. subprocess.call() oder .check_call() erlauben auch das Verwenden von try/except-Konstrukten, bei mir zumindest gibt subprocess.call('cls') einen OSError. Sauberer und schöner scheint mir aber mutetellas Lösung, auch wenn try/except im allgemeinen pythonischer ist.