Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перенос строк в python 
:(
    Опции темы
erty
Дата 10.5.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 10.5.2007

Репутация: нет
Всего: нет



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

print "Setup..."
time.sleep(3)
print "OK"


и чтобы у меня в итоге вышло сначала слово "Setup" на экран, а после обработки моей функции слово "OK" на той же строке.
Как я не бился мне не удалось так сделать :( пробовал использовать и "\b" и [:-1] ничего не помогало. каждый раз ОК писалось на новой строке. тогда я сделал вывод через
Код

stdout.write ("Setup...")
time.sleep(3)
stdout.write ("OK")

На этот раз вышло что и "Setup" и "OK" на одной строке, все как я и хотел. вот только функция stdout.write ведет себя как-то очень странно и не выводит слово "Setup" до окончания работы функции sleep. т.е. вся страка "Setup...OK" появляется у меня одновременно уже после исполнения функции sleep. Я так и не смог в этом разобраться своими силами :(

прошу просветить меня, что это? особенность языка или какой-то глюк моей системы? И как мне все таки реализовать что я хочу?
зы: Python 2.4.4, консоль: bash
PM   Вверх
Бонифаций
Дата 10.5.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: нет
Всего: 40



это буферизация вывода. Для stdout она по строкам. попробуйте делать
stdout.write("Setup..)
stdout.flush()
и тд



--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
erty
Дата 10.5.2007, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 10.5.2007

Репутация: нет
Всего: нет



Помогло, Спасибо!

Это сообщение отредактировал(а) erty - 10.5.2007, 12:11
PM   Вверх
setq
Дата 10.5.2007, 16:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Полагаю, что
Код

print "Setup..." ,
time.sleep(3)
print "OK"

сделает то, что Вам нужно. (Обратите внимание на запятую.)
  Вверх
Бонифаций
Дата 10.5.2007, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: нет
Всего: 40



Очень сомневаюсь что это сработает. Без флуша это практическо первый вариант со stdout.write()


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Goganchic
Дата 10.5.2007, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 678
Регистрация: 18.6.2004

Репутация: 1
Всего: 5



Бонифаций, ты прав: здесь идет буферизация вывода и все выведется за один раз после слипа
PM Jabber   Вверх
kulibinka
Дата 10.5.2007, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



Тут нужно использовать "\r":

Код

print "1\r"
print "2"

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0447 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.