Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 16, 2010 17:09:41

sumrak_ss
От:
Зарегистрирован: 2009-11-21
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Консоль

Подскажите, каким образом можно реализовать, чтобы вывод любой консольной программы происходил не с новой строки, а постоянно обновлялся в первой?



Офлайн

#2 Апрель 16, 2010 17:52:52

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Консоль

Разницу между \n и \r ощущаете?



Офлайн

#3 Апрель 16, 2010 18:35:26

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Консоль

sumrak_ss
Подскажите, каким образом можно реализовать, чтобы вывод любой консольной программы происходил не с новой строки, а постоянно обновлялся в первой?
Если речь идет о консольной программе на Python, то приведите пример, пожалуйста.



Офлайн

#4 Апрель 16, 2010 18:36:53

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Консоль

Андрей Светлов
Разницу между \n и \r ощущаете?
import time

for i in xrange(10):
print '\r %d' % i,
time.sleep(0.5)
под никсами не пашет че то

Офлайн

#5 Апрель 16, 2010 18:45:50

sumrak_ss
От:
Зарегистрирован: 2009-11-21
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Консоль

import time

for i in xrange(10):
print '\r %d' % i,
time.sleep(0.5)
Получается выдает последний элемент списка - 9,
а чтобы каждый элемент списка в одной строке, с промежутком 0,5 - тогда как?



Офлайн

#6 Апрель 16, 2010 19:08:07

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Консоль

import time
import sys

for i in xrange(10):
print ‘\r %d’ % i,
sys.stdout.flush()
time.sleep(0.5)



Офлайн

#7 Апрель 16, 2010 20:16:04

knkd
От:
Зарегистрирован: 2009-06-14
Сообщения: 225
Репутация: +  0  -
Профиль   Отправить e-mail  

Консоль

Андрей Светлов
sys.stdout.flush()
А что конкретно в терминале происходит?

Я однажды делал свой прогрессбар и он тоже некорректно работал в Linux.
Мне пришлось проверять ОС и в случае не-выньдовса заменять его на убогий ряд точек.



Офлайн

#8 Апрель 16, 2010 20:38:48

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Консоль

knkd
А что конкретно в терминале происходит?
имхо, происходит вывод накопленной информации, видимо обычно это происходит при переводе строки

Офлайн

#9 Апрель 16, 2010 20:41:32

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Консоль

o7412369815963, вы правы.



Офлайн

#10 Апрель 16, 2010 20:43:29

knkd
От:
Зарегистрирован: 2009-06-14
Сообщения: 225
Репутация: +  0  -
Профиль   Отправить e-mail  

Консоль

Получается терминал ориентирован исключительно на вывод строк, а не отдельных символов?
Интересно.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version