Есть ли шаблон для написания программы на Python, которая отвечает как программа оболочки
Я хочу изменить написанную мной программу на Python, чтобы она принимала команды из командной строки, а затем отвечала на эти команды как оболочка.
Есть ли стандартный шаблон или библиотека для этого, или я просто использую что-то вроде while True:
а также stdin.readline()
?
1 ответ
Это то, что cmd
Модуль, входящий в стандартную библиотеку, предназначен для:
Cmd
Класс предоставляет простую структуру для написания интерпретаторов команд, ориентированных на строки. Они часто полезны для тестовых наборов, административных инструментов и прототипов, которые позже будут обернуты в более сложный интерфейс.
и из раздела Пример:
cmd
Модуль в основном полезен для создания пользовательских оболочек, которые позволяют пользователю работать с программой в интерактивном режиме.
и быстрый демонстрационный пример:
import cmd
class CmdDemo(cmd.Cmd):
intro = "Welcome to the cmd module demo. Type any command, as long as it's black!"
prompt = '(demo) '
def default(self, arg):
print("Sorry, we do't have that color")
def do_black(self, arg):
"""The one and only valid command"""
print("Like Henry Ford said, you can have any color you like.")
print(f"You now have a black {arg}")
def do_exit(self, arg):
"""Exit the shell"""
print('Goodbye!')
return True
if __name__ == '__main__':
CmdDemo().cmdloop()
который при запуске производит:
Welcome to the cmd module demo. Type any command, as long as it's black!
(demo) ?
Documented commands (type help <topic>):
========================================
black exit help
(demo) help black
The one and only valid command
(demo) red Volvo
Sorry, we do't have that color
(demo) black Austin Martin
Like Henry Ford said, you can have any color you like.
You now have a black Austin Martin
(demo) exit
Goodbye!