Problem mit carriage return
Verfasst: Montag 4. Juni 2007, 19:52
Ich hab ein problem mit carriage return "\r" in python 2.4, läuft auf linux.
Tritt allerdings nicht immer auf.
In diesem Fall wird die Ausgabe nicht überschrieben, entferne ich den letzten Beistrich im print befehl nicht, gibt es überhaupt keine Ausgabe:
(Um das Programm schnell zu erklären: der serielle CTS-Eingang wird überwacht, bei "True" wird die Zeit bestimmt und die Differenz zur letzten Zeitmessung gebildet ... Ausgegeben wird die Frequenz, wenn sie sich in gewissen Grenzen befindet)
Ein einfaches Testprogramm in dieser Art funktionert aber sehr wohl:
Er schreibt einfach "test" immer an die selbe Stelle.
Wo liegt der Unterschied und wie bekomme ich Programm #1 dazu die Ausgabe zu überschreiben?
Tritt allerdings nicht immer auf.
In diesem Fall wird die Ausgabe nicht überschrieben, entferne ich den letzten Beistrich im print befehl nicht, gibt es überhaupt keine Ausgabe:
(Um das Programm schnell zu erklären: der serielle CTS-Eingang wird überwacht, bei "True" wird die Zeit bestimmt und die Differenz zur letzten Zeitmessung gebildet ... Ausgegeben wird die Frequenz, wenn sie sich in gewissen Grenzen befindet)
Code: Alles auswählen
import serial
import time
ser=serial.Serial()
ser.port="/dev/ttyUSB0"
ser.open()
before=0
time_before=time.time()
while True:
if ser.getCTS()==True:
now=time.time()
diff=now-before
before=now
if bool(diff<1.5) & bool(diff>0.15) & bool(now>=(time_before+1)):
print int(60./diff),"\r",
time_before=now
Code: Alles auswählen
while True:
print "test","\r",
Wo liegt der Unterschied und wie bekomme ich Programm #1 dazu die Ausgabe zu überschreiben?