Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
3 / 2 / 1
Регистрация: 14.10.2012
Сообщений: 50

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

06.03.2019, 21:18. Показов 4462. Ответов 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 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru