Я пишу индикатор выполнения, как это предлагает How to animate the command line?. Я использую Pycharm и запускаю этот файл в окне Run Tool.Python3: print (somestring, end = ' r', flush = True) ничего не показывает
import time
def show_Remaining_Time(time_delta):
print('Time Remaining: %d' % time_delta, end='\r', flush=True)
if __name__ == '__main__':
count = 0
while True:
show_Remaining_Time(count)
count += 1
time.sleep(1)
Однако код не отображается, если я запустил этот .py-файл. Что я делаю не так?
Я попытался Jogger предполагают, но это все еще не работает, если я использую print
функцию.
Однако следующий сценарий работает так, как ожидалось.
import time
import sys
def show_Remaining_Time(time_delta):
sys.stdout.write('\rtime: %d' % time_delta) # Doesn't work if I use 'time: %d\r'
sys.stdout.flush()
if __name__ == '__main__':
count = 0
while True:
show_Remaining_Time(count)
count += 1
time.sleep(1)
У меня есть 2 вопроса теперь:
Зачем Stdout работает, но печать() нет.
Почему How to animate the command line? предлагает добавить
\r
до конца, пока я должен написать его с самого начала в моем случае?
Прекрасно работает для меня в интерактивном интерпретаторе. Вы бежите в странной оболочке, случайно, скажем, в оболочке IDLE? – ShadowRanger
@ShadowRanger Я запускаю его с помощью окна Run Run Pycharm. Если я не передаю 'end = '\ r'', он печатает как обычно. Но я хочу продолжать обновлять одну и ту же строку. – spacegoing
Да, окно запуска PyCharm не является обычным терминалом. Он не обрабатывает возврат каретки так, как вам может захотеть. Запустите в обычной командной строке. – ShadowRanger