Страницы

Поиск по вопросам

вторник, 27 ноября 2018 г.

Дополнительная функциональность raw_input

Пишу утилиту, которая позволяет запускать определенные скрипты на удаленных машинах. В итоге, получается что-то вроде ограниченной командой строки. На данный момент я использую такую конструкцию:
exec_script = raw_input('\033[1;37mcmd> \033[1;m')
Однако в таком варианте кучу неудобств. Например, нельзя использовать клавишу ↑ для просмотра предыдущих команд. Можно ли это осуществить в python 2.7?


Ответ

Для этого можно воспользоваться модулем readline. Достаточно просто импортировать его в начале скрипта:
# -*- encoding: utf8 -*-
import readline
while True: s = raw_input('\033[1;37mcmd> \033[1;m') if s == 'quit': print 'Bye bye!' break print 'Echo: "%s"' % s

Комментариев нет:

Отправить комментарий