LINUX.ORG.RU

Безмодульный скролл в консоли и правильная очистка строк.

 


0

1

Как в питоне реализовать скролл в терминале без подключения 49124128 модулей?
Допустим мне надо ограничить вывод 50 строками остальное уходит в скролл.

И как делать правильно очистку всего терминала или определенной строки?
Сейчас я делаю это очень топорно:
__import__('os').system(«reset»)

Это занимает порядка 0.3 секунд и вообще это неправильно. Я уверен.



Последнее исправление: VictimOfLoveToLinux (всего исправлений: 3)

С задержкой/очисткой разобрался.

import os
print "привет мир"
os.system('clear')
print "пока мир"
Всё не могу привыкнуть к import.
Вопрос о скролле всё ещё актуален.

VictimOfLoveToLinux
() автор топика

Мне кажется, имеет смысл использовать ncurses

kostik1
()
Ответ на: комментарий от VictimOfLoveToLinux

занимаешься какой-то херней. лучше разберись с терминалом, управляющими последовательностями и всем таким. это же тебе не дос с паскалебейсиком.

на вот тебе, читай:

http://www.termsys.demon.co.uk/vtansi.htm

http://en.wikipedia.org/wiki/ANSI_escape_code

http://wiki.bash-hackers.org/scripting/terminalcodes

а лучше возьми либу какую-нибудь типа ncurses или slang

anonymous
()
Ответ на: комментарий от VictimOfLoveToLinux

потому что вызываешь системную команду из питона вместо того, чтобы использовать какую-нибудь библиотеку для работы с терминалом. а еще ты пишешь очень странные конструкции типа __import('os')__.system('clear'), вместо того, чтобы разобраться с языком и модулями.

anonymous
()
Ответ на: комментарий от anonymous

вот тебе пример:

#!/usr/bin/python

import sys 

def clear():
    sys.stdout.write('\033[1J')
    sys.stdout.write('\033[;H')

print 'hello'
clear()
print 'world'

и читай про управляющие последовательности терминала

anonymous
()
Ответ на: комментарий от VictimOfLoveToLinux

вот тебе еще код:

#!/usr/bin/python

import sys
import time

def scrollpart(f, t):
    sys.stdout.write('\033[%s;%sr' % (f, t))

scrollpart(1, 10)

for i in xrange(100):
    print i
    time.sleep(0.1)

anonymous
()
Ответ на: комментарий от VictimOfLoveToLinux

Добро пожаловать в реальный мир.

В следующий раз, прежде чем лепить лисапет (сколь заманчивым не казалось), ищи уже готовые библиотеки.

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

schizoid ★★★
()
Ответ на: комментарий от schizoid

Я или гуглить не умею или в сети реально мало годных описаний для модулей питона.
Казалось бы нагуглить модуль который делит экран на две части гиппер просто.
Но нет. Я 3ое суток гуглил и без результата.

Немного потыкал Urwid. Тоже годнота.

VictimOfLoveToLinux
() автор топика
Ответ на: HATE от schizoid

Ну без конкретики. Заголовок вообще ни разу не намекает. «Что-то там где-то там работа с чем-то там»

У питона вообще самый плохой FAQ который я когда-либо читал.

Самый годный у PHP. После каждого описания есть годный explame с комментариями.

А чтобы осилить питон мне приходится изучать всю такую страницу с информацией которая мне мало необходима на данный момент.

VictimOfLoveToLinux
() автор топика
Ответ на: комментарий от VictimOfLoveToLinux

Это дока, а не обучалка. Предполагается, что читатель уже ознакомился с NCURSES programming howto.

Тебе всё равно придётся рано или поздно ознакамливаться с такими простынями. IMHO, лучше это делать на домашних проектах, чем на рабочих на производстве, где жмут сроки, или на каких-то абстрактных, высосанных из пальцев примерах.

schizoid ★★★
()
Ответ на: комментарий от VictimOfLoveToLinux

Нормальная конструкция :з если надо всего один раз использовать os то она идеальна.

Она предельно бредова. Модуль os по любому грузится и висит в памяти, переменная os все равно как правило содержит именно этот модуль, а синтаксис у такой конструкции просто ужасен.

Основные модули скудны а посторонние не хочу.

Про основные модули во первых смешно, во вторых неправда;-)

AIv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.