Найти - Пользователи
Полная версия: Получение предыдущей команды.
Начало » Python для новичков » Получение предыдущей команды.
1
spikeqzz
Всем привет.
Есть цикл.
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()

Как можно сделать чтобы при нажатии стрелочки вверх можно было получить предыдущую команду(как в консоли).
Буду рад за ответ
FishHook
spikeqzz
(как в консоли).
А ты думаешь там волшебство какое-то происходит? Чтобы иметь возможность перемещаться по истории, нужно эту историю хранить. Сделай так, чтобы твои действия сохранялись в некоем хранилище (например в питоньем списке) и получение предыдущей команды - задача тривиальная.
spikeqzz
FishHook
получение предыдущей команды - задача тривиальная
Спасибо за совет.
Как можно получать команду из списка при нажатии стрелки вверх? Чтобы команда попадала в поле input()?
FishHook
spikeqzz
Спасибо за совет.
Как можно получать команду из списка при нажатии стрелки вверх? Чтобы команда попадала в поле input()?
Странный вопрос, если у вас есть список неких сущностей, и вы знаете индекс текущей сущности, что вам мешает получить предыдущую сущность по её индексу?
spikeqzz
FishHook
Как запихнуть это всё в input?
FishHook
spikeqzz
Как запихнуть это всё в input?
Что именно вы хотите запихать в инпут и что именно вы понимаете под инпутом?
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/
spikeqzz
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/
Спасибо, попробую
py.user.next
spikeqzz
Как можно получать команду из списка при нажатии стрелки вверх?
Попробуй curses, она как раз сделана для контролов в консоли.
spikeqzz
py.user.next
Спасибо большое! То что нужно
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB