Próbuję napisać proste narzędzie, które odczytuje pliki z dysku, przetwarza obraz i zwraca wynik algorytmu. Ponieważ program może czasami zająć trochę czasu, lubię mieć pasek postępu, więc wiem, gdzie jest w programie. A ponieważ nie lubię zaśmiecać mojej linii poleceń i jestem na platformie Unix, chciałem użyć znaku "\ r", aby wydrukować pasek postępu tylko na jednej linii.Python print nic nie wypisuje znakiem powrotu karetki
Ale kiedy mam tutaj ten kod, nic nie drukuje.
Próbowałem również:
print '\r', i, '/', len(files),
Teraz wystarczy, aby upewnić się ten pracował w Pythonie, próbowałem to:
heartbeat = 1
while True:
print '\rHello, world', heartbeat,
heartbeat += 1
Ten kod działa doskonale. Co się dzieje? Moje rozumienie powrotu karetki w Linuksie polegało na tym, że po prostu przesuwałbym znak linii na początek, a następnie mogłem zastąpić stary tekst, który został wcześniej napisany, o ile nie nigdzie nie drukuję linii nowej. Wydaje się, że to się nie dzieje.
Czy istnieje lepszy sposób wyświetlania paska postępu w wierszu poleceń niż obecnie próbuję wykonać?
http://pypi.python.org/pypi/progressbar – kennytm