Форум сайта python.su
0
Привет всем. Интересует вопрос, можно ли как то реализовать поочередный ввод аргументов из командной строки. Что бы аргументы вписывать не во время запуска скрипта а после. Просто input() не подойдет. А вот если бы через него можно было бы передавать значения в NameSpace, то тогда другое дело.
Если более конкретно, то интересует, как реализовать интерфес, как в проге Metasploit
Офлайн
6
А почему просто input() не подходит то?
Офлайн
0
FirikУ меня есть несколько переменных, в которые записываются значения. Однако бывает, что какие переменные не обязательны к заполнению. А input() заставляет вводить все значения последовательно.
А почему просто input() не подходит то?
Офлайн
6
Ну так научите программу выдавать вам input только тогда, когда необходимо. А как иначе она поймет, что вам надо вводить и что нет? Либо вводите всегда все значения, но ненужные вводите пустыми и делайте проверку на пустоту
Офлайн
253
Для создания интерфейсов командной строки есть модуль
https://docs.python.org/2/library/cmd.html
Если хотите незабываемой красоты то на это есть https://docs.python.org/2/howto/curses.html
в перл версии Metasploit насколько я понимаю интерфейс как раз на curses и был сделан.
Отредактировано doza_and (Май 3, 2016 16:51:14)
Офлайн
857
Mr.AndersonЭто обычная командная оболочка.
Если более конкретно, то интересует, как реализовать интерфес, как в проге Metasploit
Mr.AndersonНе подойдёт, нужен конечный автомат, который использует input(). Ты вводишь команду в состоянии ожидания команды. Если она распознаётся, то автомат переходит в состояние этой команды. Дальнейшие команды относятся к этому состоянию, пока ты не введёшь команду на выход.
Просто input() не подойдет.
Офлайн