Я делаю обработку папок / файлов в Python.Чтобы уведомить пользователя, я вывожу некоторые сообщения на консоль.Эти сообщения выглядят примерно так:
Creating folders...
DONE
Creating files...
DONE
All done!
Это нормально, если процесс короткий, но в моем случае процесс (и сообщения) не короткий.Я не хочу тратить новые строки на сообщения об успехе / неудаче.Я хочу, чтобы они выглядели так:
Creating folders... DONE
Creating files... DONE
All done!
Хитрость заключается в том, чтобы строки "DONE" добавлялись к предыдущей строке после выполнения конкретной задачи.Итак, сначала я просто вижу:
Creating folders...
, и когда задача выполнена, она становится:
Creating folders... DONE
и переходит к следующей задаче.Я пытался не заканчивать строки, но это не сработало:
print("Creating folders... ", end="")
time.sleep(2) # fake process
print("DONE")
time.sleep(1)
print("Creating files... ", end="")
time.sleep(2)
print("DONE")
Ну, это работает, но обе строки (задача ... результат) отображаются одновременно (после задачи)готово).Я не вижу перехода, о котором я упоминал выше.
Я нашел другой путь, переместился в начало строки и заменил строку:
print("Creating folders... ", end="\r")
time.sleep(2) # fake process
print("Creating folders... DONE")
time.sleep(1)
print("Creating files... ", end="\r")
time.sleep(2)
print("Creating files... DONE")
Кажется, этоПроизведите желаемый эффект, но я повторяю и расширяю предыдущее сообщение.Я предпочел бы просто вывести результат, а не повторять сообщение задачи снова.
Есть ли более простое решение для этого?
Кроме того, почему не первый метод I 'мы пробовали работать?Я печатаю текст, а не заканчиваю строку.Через некоторое время я добавляю другой текст, и он добавляется к предыдущей строке, потому что нет перевода строки.Поскольку между двумя отпечатками есть разница во времени, я должен видеть переход, но я не вижу.Они печатаются одновременно.Почему это так?