Изменение консольного вывода print() без использования cls

Такая проблема, в программе есть цикл ожидания определенных действий от пользователя. Пока программа ожидает выполнение этих действий, на экран выводится "Ожидание..." print("Ожидание...") чтобы пользователь не подумал, что программа зависла, надпись должна циклично изменяться, от Ожидание... до Ожидание.. и так по кругу. Понятное дело, что это можно реализовать через os.system("cls"), но в таком случая вся надпись неприятно "мигает". Как сделать, чтобы перезаписывался не весь текст, а только точка в конце?


Ответы (1 шт):

Автор решения: CrazyElf

Можно использовать для этого символ \r "возврат каретки". Вот в таком варианте, когда он в начале строки, это работает и в Google Colab. А так то если просто в терминале, то можно использовать и вариант с end='\r':

import time

text = "Ожидание.."
flag = False

while True:
    print('\r' + text + ('.' if flag else ' '), end='')
    flag = not flag
    time.sleep(1)
→ Ссылка