Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 21, 2015 16:40:34

spikeqzz
Зарегистрирован: 2015-03-14
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение предыдущей команды.

Всем привет.
Есть цикл.

while True:
	inp = str(input(os.getlogin().capitalize() + ':~$ ')).lower()
	if inp == str('file'):
		add_dell.add_and_del()
	elif inp == str('port'):
		gin = 1
		check_port.potsc(gin)
	elif inp == str('help'):
		f_help = open('help.t')
		read_f = f_help.read() 
		print(read_f)
		f_help.close()
	elif inp == str('backup'):
		backup.backup()
	elif inp == str('exit'):
		other_def.text_time('Closing...\n')
		quit()

Как можно сделать чтобы при нажатии стрелочки вверх можно было получить предыдущую команду(как в консоли).
Буду рад за ответ

Офлайн

#2 Апрель 21, 2015 16:51:25

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Получение предыдущей команды.

spikeqzz
(как в консоли).
А ты думаешь там волшебство какое-то происходит? Чтобы иметь возможность перемещаться по истории, нужно эту историю хранить. Сделай так, чтобы твои действия сохранялись в некоем хранилище (например в питоньем списке) и получение предыдущей команды - задача тривиальная.



Офлайн

#3 Апрель 21, 2015 18:49:59

spikeqzz
Зарегистрирован: 2015-03-14
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение предыдущей команды.

FishHook
получение предыдущей команды - задача тривиальная
Спасибо за совет.
Как можно получать команду из списка при нажатии стрелки вверх? Чтобы команда попадала в поле input()?

Офлайн

#4 Апрель 21, 2015 18:55:54

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Получение предыдущей команды.

spikeqzz
Спасибо за совет.
Как можно получать команду из списка при нажатии стрелки вверх? Чтобы команда попадала в поле input()?
Странный вопрос, если у вас есть список неких сущностей, и вы знаете индекс текущей сущности, что вам мешает получить предыдущую сущность по её индексу?



Офлайн

#5 Апрель 21, 2015 19:13:49

spikeqzz
Зарегистрирован: 2015-03-14
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение предыдущей команды.

FishHook
Как запихнуть это всё в input?

Офлайн

#6 Апрель 21, 2015 19:30:19

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Получение предыдущей команды.

spikeqzz
Как запихнуть это всё в input?
Что именно вы хотите запихать в инпут и что именно вы понимаете под инпутом?



Офлайн

#7 Апрель 21, 2015 19:32:58

Suguby27
Зарегистрирован: 2015-04-07
Сообщения: 26
Репутация: +  4  -
Профиль   Отправить e-mail  

Получение предыдущей команды.

input ждет ввода от ОС, нажатия клавиш он не ловит, поэтому “стрелочку вверх” вы не получите никак.
лучше сделать по UNIX-way - каждая утилита делает что-то одно и делает это хорошо. пусть ваша утилита бакапит, проверяет порты, етс. А историю выполнения хранит ОС для разбора параметров командной строки кошерно использовать argparse https://docs.python.org/2.7/howto/argparse.html#id1 и http://rtfm.co.ua/python-modul-argparse-opcii-komandnoj-stroki-v-primerax/

Офлайн

#8 Апрель 21, 2015 19:55:54

spikeqzz
Зарегистрирован: 2015-03-14
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение предыдущей команды.

Suguby27
input ждет ввода от ОС, нажатия клавиш он не ловит, поэтому “стрелочку вверх” вы не получите никак. лучше сделать по UNIX-way - каждая утилита делает что-то одно и делает это хорошо. пусть ваша утилита бакапит, проверяет порты, етс. А историю выполнения хранит ОС для разбора параметров командной строки кошерно использовать argparse https://docs.python.org/2.7/howto/argparse.html#id1 и http://rtfm.co.ua/python-modul-argparse-opcii-komandnoj-stroki-v-primerax/
Спасибо, попробую

Офлайн

#9 Апрель 21, 2015 23:36:46

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Получение предыдущей команды.

spikeqzz
Как можно получать команду из списка при нажатии стрелки вверх?
Попробуй curses, она как раз сделана для контролов в консоли.



Отредактировано py.user.next (Апрель 21, 2015 23:37:46)

Офлайн

#10 Апрель 22, 2015 20:51:43

spikeqzz
Зарегистрирован: 2015-03-14
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение предыдущей команды.

py.user.next
Спасибо большое! То что нужно

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version