3 / 2 / 1
Регистрация: 14.10.2012
Сообщений: 50

Как напечатать два и более строки на одном месте в консоли?

06.03.2019, 21:18. Показов 4476. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот код:
Python
1
2
3
4
5
message = '\r%s%s %s%% %s/%s' % (prefix, bar, percent, iter, total)
if 'Process files' in prefix:
    temp = '\nDL: %s, skipped: %s, errors: %s' % (dlfiles, skipped, err)
    message = message + temp
print(message, end = '\r')
Если закоментировать 2 и 3 строки в коде, то выводится на одном месте, а не после. Но хочу сделать так, чтобы два и более строки могли выводиться на одном месте (затирая предыдущие строки), но не получается. Как можно так сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.03.2019, 21:18
Ответы с готовыми решениями:

Вывод текста в консоли в одном месте
Есть такой вопрос: Как сделать так, чтобы в консольном окне элементы текста выводились в одном и том же месте с нек. задержкой. Например...

Как выводить строки в консоли на месте предыдущих?
Привет всем. Как можно сделать вывод обработки файлов или текста в нем, чтобы происходящее отображалось только в одной строке...

два скрипта в одном месте
<script type="text/javascript" src="http://yandex.st/jquery/1.9.1/jquery.min.js"></script> <script type="text/javascript"> ...

7
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
06.03.2019, 23:37
Python
1
2
3
4
5
6
import time
 
for i in range(10,-1,-1):
    time.sleep(1)
    sys.stdout.write('\rОсталось...[%02d] сек' % i)
    sys.stdout.flush()
P.S. Если честно, то не совсем понятно что именно нужно. Имитация прогрессбара?
0
3 / 2 / 1
Регистрация: 14.10.2012
Сообщений: 50
06.03.2019, 23:38  [ТС]
А на более 2 строк, как?
да, имитация прогресс-бара, но в два строки, ибо в одну строку не влезает.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
06.03.2019, 23:39
Цитата Сообщение от Рольф Посмотреть сообщение
А на более 2 строк
Пример?
0
3 / 2 / 1
Регистрация: 14.10.2012
Сообщений: 50
06.03.2019, 23:45  [ТС]
Garry Galler, Ну пусть будет так, что в первую строку будет число итерации, а во второй просто текст. По коду уже пойму как поменять.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
07.03.2019, 00:10
Так не получится. По крайней мере я без понятия.
Для второй строки нужен перевод строки - \n. А возврат каретки возвращает курсор к началу текущей строки. Таким образом затираться будет всегда только одна строка, вторая останется в консоли, после нее третья, четвертая и т.д.
Python
1
2
3
4
for i in range(10,-1,-1):
    time.sleep(1)
    sys.stdout.write('\rОсталось...[%02d] сек\nПросто текст' % i)
    sys.stdout.flush()
Code
1
2
3
4
5
6
7
8
9
10
11
12
Осталось...[10] сек
Осталось...[09] сек
Осталось...[08] сек
Осталось...[07] сек
Осталось...[06] сек
Осталось...[05] сек
Осталось...[04] сек
Осталось...[03] сек
Осталось...[02] сек
Осталось...[01] сек
Осталось...[00] сек
Просто текст
Добавлено через 1 минуту
Цитата Сообщение от Рольф Посмотреть сообщение
ибо в одну строку не влезает
Для этого в прогрессбарах все поступают одинаково - просто обрезают длинную строку до фиксированной длины.
0
3 / 2 / 1
Регистрация: 14.10.2012
Сообщений: 50
07.03.2019, 00:13  [ТС]
Garry Galler, ладно, уже разобрался с помощью модуля curses
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
07.03.2019, 00:50
Понятно. Только оно не кроссплатформенно. Для винды нужно свой curses ставить - windows-curses.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import time,curses
from curses import wrapper
 
def main(stdscr):
    
    stdscr.clear()
    # расцветка для строк
    curses.init_pair(1, curses.COLOR_RED, curses.COLOR_WHITE)
    curses.init_pair(2, curses.COLOR_YELLOW, curses.COLOR_WHITE)
    curses.init_pair(3, curses.COLOR_GREEN, curses.COLOR_WHITE)
    
    for i in range(10,-1,-1):
        time.sleep(1)
        stdscr.addstr(0,0,'Осталось [{}]\n'.format(i),      curses.color_pair(1))
        stdscr.addstr(1,0,'Вторая строка {}\n'.format(i),   curses.color_pair(2))
        stdscr.addstr(2,0,'Третья строка {}\n'.format(i+1), curses.color_pair(3))
        stdscr.refresh()
    
 
wrapper(main)
curses.endwin() #  return terminal to normal status
time.sleep(5)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.03.2019, 00:50
Помогаю со студенческими работами здесь

два Lotusa на одном рабочем месте
у пользователя имеются два почтовых ящика. раньше проблема решалась путем создания нового места вызова, т.е пользователь работал в...

Вывод строки текста в одном и том же месте
народ, мне нужно что бы программа выводила слово "программа" 15 раз в одном и том же месте. как это сделать? вот код вывода этих слов , но...

Два и более CDC устройства на AT90USB82 на одном компе
Привет всем. Сделал USB-HID устройства на AT90USB82 (аппаратная поддержка USB). Все заработало, и все отлично. Но мне нужно чтобы компьютер...

Набор текст в одном месте, аналогичный тест появлялся бы в другом месте. Word 2016
Нужно чтобы при наборе текста в одном месте аналогичный тест появлялся бы в другом месте в ворде 2016. Есть договор в нем на разных...

В одном месте кода проверка условия срабатывает как нужно, а в другом месте кода такое же условие не срабатывает
Здравствуйте. Делаю проверку на заполнение полей. Если поля не заполнены, то вывести ошибку в виде Toast. В одном файле у меня...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru