Seite 1 von 1

Counter? Möchte 5 Minuten runterzählen und dabei anzeigen?

Verfasst: Freitag 1. Mai 2015, 16:36
von maximalz
Hallo Leute - ich bin ein absoluter Python-DAU und habe ein kleines Python Script das im LXTerminal meines Knoppix 7.5 läuft.
Leider gibt es dort eine Wartezeit die mit dem print Befehl 'Nun 5 Minuten warten' anzeigt wird.
Aber ich würde sehr gerne immer wissen wie lange es noch dauert, also in der Zeile darunter die Zeit von 5 Minuten abwärts zählen lassen.

Hab danach verschiedens gegoole't aber nichts passendes gefunden?

Kann mir irgend jemand helfen was ich als Python Code eingeben muss um die beschriebene Funktion zu erhalten?

THX - im vorraus an alle

******************************************************************************************
Also wie seagt da ich mich mit Python nicht auskenne habe ich als erste Hilfe folgendes probiert:

den alten time.sleep(300) habe ich ersetzt durch

time.sleep(60)
print ('Noch 4 Minuten')
time.sleep(60)
print ('Noch 3 Minuten')
time.sleep(60)
print ('Noch 2 Minuten')
time.sleep(60)
print ('Noch 1 Minute')

Das ist nicht nur wenig elegant und dazu belege ich ganze 4 Zeilen die mir meine anderen Ausgaben nach oben schieben :oops:

Re: Counter? Möchte 5 Minuten runterzählen und dabei anzeige

Verfasst: Freitag 1. Mai 2015, 16:52
von Sirius3
@maximalz: Wenn ich Dich richtig verstanden habe, willst Du nicht, dass jedesmal eine neue Zeile begonnen wird. Das kann man verhindern, indem der newline durch ein carriage-return ersetzt wird:

Code: Alles auswählen

print()
for minutes in reversed(range(1,6)):
    print('\rNoch %d Minute%s' % (minutes, 'n' if minutes!=1 else ' '), end='', flush=True)
    time.sleep(60)
print()

Re: Counter? Möchte 5 Minuten runterzählen und dabei anzeige

Verfasst: Freitag 1. Mai 2015, 17:12
von maximalz
@Sirius3:
Danke für die schnelle Antwort, allerdings scheine ich was falsch zu machen ?
Habe Deinen Programm Code jetzt einfach kopiert und an Stelle meines Versuches rein kopiert nur bekomme ich dann sofort eine Fehlermeldung - IndentationError: expected an indented block ?

Was mache ich da falsch ?

Re: Counter? Möchte 5 Minuten runterzählen und dabei anzeige

Verfasst: Freitag 1. Mai 2015, 17:25
von Sirius3
@maximalz: in Python ist die Einrückung wichtig. Du kannst also Zeilen nicht einfach einfügen, sondern mußt dafür sorgen, dass sie soweit eingerückt sind, dass sie mit dem umliegenden Block übereinstimmen.

Re: Counter? Möchte 5 Minuten runterzählen und dabei anzeige

Verfasst: Freitag 1. Mai 2015, 17:27
von /me
maximalz hat geschrieben:Was mache ich da falsch ?
Eine nicht passende Einrückung solltest du eigentlich selber am besten finden können. Ohne Code können wir hier nur raten.

Re: Counter? Möchte 5 Minuten runterzählen und dabei anzeige

Verfasst: Freitag 1. Mai 2015, 17:35
von maximalz
@Sirius3:

ich habe es nun nach besten Gewissen eingerückt, allerdings kommt nun ein neuer Fehler?

Code: Alles auswählen

	    		(doc['dateString'], doc['sgv']))
    				print()
    				for minutes in reversed(range(1,6)):
        				print('\rNoch %d Minute%s' % (minutes, 'n' if minutes!=1 else ' '), end='', flush=True)
        				time.sleep(60)
    				print()
		client.close()
	except:
		print('Fehler in der Verarbeitung neustart in 10 Sekunden')
		time.sleep(10)
Das oben gezeigte ist der Ausschnitt im Programm Code wo ich Deinen Part eingefügt habe und wo vorher der alte Teil war.
Bei dem deute ich dann mal ich habe irgendwo was falsch geschrieben --> SyntaxError: invalid syntax

Re: Counter? Möchte 5 Minuten runterzählen und dabei anzeige

Verfasst: Freitag 1. Mai 2015, 17:39
von Sirius3
@maximalz: Kannst Du bitte einen sinnvollen Ausschnitt aus Deinem Code mit komplettem Traceback des Fehlers posten. Aus dem gezeigten läßt sich gar nichts sagen.

Re: Counter? Möchte 5 Minuten runterzählen und dabei anzeige

Verfasst: Freitag 1. Mai 2015, 17:56
von BlackJack
@maximalz: Dein Gewissen ist dem Compiler egal, den interessieren nur die syntaktischen Regeln von Python. ;-)

Das ”nackte” ``except:`` ohne eine konkrete Ausnahme mit der ”behandlung” der Ausnahme, die keine sinnvolle Behandlung ist, sollte so nicht sein.

Re: Counter? Möchte 5 Minuten runterzählen und dabei anzeige

Verfasst: Freitag 1. Mai 2015, 19:10
von maximalz
@alle:

hier die Fehlermeldung die ich bekomme, leider nur als Foto via Handy

https://drive.google.com/file/d/0ByUQqT ... sp=sharing

Re: Counter? Möchte 5 Minuten runterzählen und dabei anzeige

Verfasst: Freitag 1. Mai 2015, 19:16
von /me
Welche Python-Version verwendest du eigentlich? Da du print als Funktion verwendest (mit Klammern) bin ich bisher von Python 3.x ausgegangen. Kann es sein, dass du Python 2.x einsetzt?

Re: Counter? Möchte 5 Minuten runterzählen und dabei anzeige

Verfasst: Freitag 1. Mai 2015, 19:18
von BlackJack
@maximalz: Kann es sein das Du Python 2 verwendest? Warum hast Du dann im ersten Beitrag die sinnfreien Klammern um die Zeichenkette bei der ``print``-*Anweisung*. In Python 2 ist das keine Funktion und hat demendsprechend auch nicht die Möglichkeiten Argumente entgegen zu nehmen. In Python 2 müsstest Du das über `sys.stdout` und dessen `write()` und `flush()`-Methode regeln, oder als ersten Import in dem Modul ``from __future__ import print_function`` schreiben, damit aus der Anweisung eine Funktion wird.

Re: Counter? Möchte 5 Minuten runterzählen und dabei anzeige

Verfasst: Freitag 1. Mai 2015, 19:26
von maximalz
@alle:

Ja also das wusste ich nicht - SORRY - ich dachte durch die Angabe des Knoppix 7.5 würde sich die Version des Python ergeben, meine Schuld.

Kann mir jemand sagen wie ich herraus finde welche Version von Python auf meinem Knoppix läuft? Mit welchem Befehl unter Linux Terminal ?

Erledigt :oops: :oops: :oops: einfach python eingeben, na klar. Also es ist die 2.7.9 :roll:

Re: Counter? Möchte 5 Minuten runterzählen und dabei anzeige

Verfasst: Freitag 1. Mai 2015, 19:31
von maximalz
@BlackJack: Könntest Du mir bitte die Funktion als Code so einstellen wie es Sirius3 am Anfang auch gemacht hat? Da ich mit Deinen Hinweisen alleine eine Umsetzung nicht hinbekomme :cry:

Re: Counter? Möchte 5 Minuten runterzählen und dabei anzeige

Verfasst: Samstag 2. Mai 2015, 09:11
von BlackJack
@maximalz: Im Grunde musst Du nur den beschriebenen `__future__`-Import an der passenden Stelle einfügen und schauen ob es dann funkioniert. In der Hoffnung dass a) die Python-Version nicht zu alt ist, und b) alle ``print``-Anweisungen in dem Modul konsequent geschrieben wurden als wäre ``print`` eine Funktion. Falls b) nicht zutrifft sollte man das aber sowieso mal vereinheitlichen.

Re: Counter? Möchte 5 Minuten runterzählen und dabei anzeige

Verfasst: Sonntag 3. Mai 2015, 22:16
von pixewakb
Du solltest den Screenshot löschen, man kann dein Gesicht sehen.

Kann man Knoppix installieren (?), schau dir mal "andere" Distributionen an, falls du dauerhaft mit Linux arbeiten willst. Hat mich noch nicht überzeugen können (muckerte bei mir immer (!) rum und ich brauche ein jederzeit einsatzbereites Gerät) und ich brauche ein System, wo ich Windows-Software nativ einsetzen kann. Von mir daher keine Empfehlung zu Linux.

Warum verwendest du nicht IDLE? In der Shell siehst du auch direkt die Python-Version.