Форум сайта python.su
Подскажите пожалуйста способ создания какого нибудь меню в КОНСОЛЬНОМ приложении. Гуглил - ничего толкового не нашёл.
И ещё вопрос: у меня программа создаёт бэкап данных в архиве. Как можно сделать полосу загрузки или хотябы просто чтобы пока данные копируются чтобы через определённые промежутки времени на экран выводился заданный символ.
Отредактировано (Март 12, 2010 07:13:43)
Офлайн
БелыйКлыкЗдесь тебе и меню и прогрессбар http://www.python.su/forum/viewtopic.php?id=6590
Подскажите пожалуйста способ создания какого нибудь меню в КОНСОЛЬНОМ приложении. Как можно сделать полосу загрузки .
Офлайн
sumrak_sshttp://excess.org/urwid/, http://docs.python.org/library/curses.html
Подскажите пожалуйста способ создания какого нибудь меню в КОНСОЛЬНОМ приложении
Офлайн
sumrak_ssТама про виндовые =( Нашёл как сделать меню в линуксе, но и тут не всё в порядке.
Здесь тебе и меню и прогрессбар http://www.python.su/forum/viewtopic.php?id=6590
tty.setraw(sys.stdin.fileno())Из-за tty.setraw(sys.stdin.fileno()) текст смещается вправо, и работает перехват нажатия только один раз =( А без этой строки ничего не перехватывается =(
vib = sys.stdin.read(1)
regallI'am no speak is English
http://excess.org/urwid/, http://docs.python.org/library/curses.html
Офлайн
БелыйКлыкРаботает в линуксе
Тама про виндовые =( Нашёл как сделать меню в линуксе, но и тут не всё в порядке.
import termios, fcntl, sys, os
fd = sys.stdin.fileno()
oldterm = termios.tcgetattr(fd)
newattr = termios.tcgetattr(fd)
newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
termios.tcsetattr(fd, termios.TCSANOW, newattr)
oldflags = fcntl.fcntl(fd, fcntl.F_GETFL)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)
try:
while 1:
try:
c = sys.stdin.read(1)
print "Got character", `c`
except IOError: pass
finally:
termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags)
Офлайн
Жалуется на
sumrak_ssпробовал всё взять в скобки, тоже не работает. (Python 3.1)
print “Got character”, `c`
Офлайн
Срочно читать хотя бы что-нибудь по питону. Особенно 3.1.
Правда, я сомневаюсь что есть не-англоязычная литература по 3-му питону.
Офлайн
Есть, уже начал изучать (не книга правда а wiki). Просто меню уже для практических целей нужно. Пока пришлось реализовать через командную строку =(
Офлайн
FerromanПочему, есть полный перевод Марк Саммерфилд “Програмирование на Python 3. Подробное руководство” http://ruszona.ru/2009/09/26/programmirovanie-na-python-3.html
Правда, я сомневаюсь что есть не-англоязычная литература по 3-му питону.
Офлайн
вот пример сканера:
import termios, sys, os
TERMIOS = termios
def getkey():
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
new = termios.tcgetattr(fd)
new[3] = new[3] & ~TERMIOS.ICANON & ~TERMIOS.ECHO
new[6][TERMIOS.VMIN] = 1
new[6][TERMIOS.VTIME] = 0
termios.tcsetattr(fd, TERMIOS.TCSANOW, new)
c = None
try:
c = os.read(fd, 1)
finally:
termios.tcsetattr(fd, TERMIOS.TCSAFLUSH, old)
return c
if __name__ == '__main__':
print 'type something'
s = ''
while 1:
c = getkey()
if c == '\n': ## break on a Return/Enter keypress
break
print 'got', c
s = s + c
print c
Офлайн