Как я могу напечатать строку, которая обновляется, но в трех разных строках? - PullRequest
0 голосов
/ 11 июля 2020

Хорошо, мой вопрос кажется мне немного странным, но я постараюсь объяснить здесь лучшее, что могу.

Я знаю, что если я использую \r для печати, я могу получить строчную печать над собой снова и снова. Например, если я хочу узнать% процесса, который я мог бы выполнить:

print("\rProgress {}%".format(percentage),end="")

И это напечатает весь прогресс только в одной строке. Но что, если строка, которую я пытаюсь напечатать, больше? Как я могу добиться чего-то вроде этого:

Итерация 1:

Progres A 0.0%
Progres B 0.0%
Progres C 0.0%

Итерация 2:

Progres A 1.0%
Progres B 1.0%
Progres C 1.0%

И так далее ...

Я пробовал что-то вроде:

for _ in range(5):
   print("""\rhello
   {}""".format(i),end="")

, но результат:

hello
hello  0
hello  1
hello  2
hello  3
       4

Также пробовал другие комбинации, но результат похож.

В последнем примере , желаемый результат будет состоять из 2 строк, в первой из которых будет указано hello, а во второй - соответствующее _ в зависимости от каждого временного шага.

Итерация 1:

hello
0

Итерация 2:

hello
1

Итерация 3:

hello
2

Вплоть до последней итерации, это будет:

hello
4

РЕДАКТИРОВАТЬ: Причина Я пытаюсь это сделать, потому что строка слишком велика, и я хочу разбить ее, потому что она не подходит ни для фактической ячейки, ни для текущего вывода.

Строка выглядит так:

Iteration 1: Progress: xx.xx%, current step/total steps: cs/ts, bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla

Хотелось бы разбить примерно так:

Iteration 1:
Progress: xx.xx%
current step/total steps: cs/ts
bla bla bla bla bla
bla bla bla bla bla
bla bla bla bla bla
bla bla bla bla bla

1 Ответ

0 голосов
/ 11 июля 2020

Используйте '\ n', чтобы разбить строку, например

print ("\rProgress {0}\nProgress{1}\nProgress{2}".format(percentageA, percentageB, percentageC ), end=" ")

Это сделает 3 строки в 1 функции печати

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...