使用select接口创建Python CLI
我想创建一个带有项目选择界面的Python CLI,该界面允许用户从列表中选择项目。比如:使用select接口创建Python CLI,python,terminal,command-line-interface,Python,Terminal,Command Line Interface,我想创建一个带有项目选择界面的Python CLI,该界面允许用户从列表中选择项目。比如: Select a fruit (up/down to select and enter to confirm): [x] Apple [ ] Banana [ ] Orange 我希望用户能够使用上/下箭头更改其选择,然后按Enter确认 是否存在具有此功能的Python模块?我试着搜索,但找不到我想要的东西 这正是我想要的 它做了我想要的,但它使用诅咒并打开了一个简单的GUI。我希望避免创建GUI,并
Select a fruit (up/down to select and enter to confirm):
[x] Apple
[ ] Banana
[ ] Orange
我希望用户能够使用上/下箭头更改其选择,然后按Enter
确认
是否存在具有此功能的Python模块?我试着搜索,但找不到我想要的东西
这正是我想要的
它做了我想要的,但它使用诅咒并打开了一个简单的GUI。我希望避免创建GUI,并将所有输出保留在终端中:这可能需要更新终端显示的行
我目前正在使用,但我认为它不支持此功能。我不知道如何使用
cmd
/readline
准确地输入这类功能,如果您有任何见解,我将不胜感激。经过一番搜索,我找到了两个满足我需要的库
第一个是的Python端口,由Yeoman等项目使用的CLI库。我发现这个库有一个非常好的API(构建在之上),但在设计/功能方面缺乏完善
第二个(我将使用)是Inquirer的另一个Python端口。这个库提供的功能与最初的Inquirer.js非常接近,这正是我所需要的。然而,API不如python inquirer干净
示例:
python查询器
示例:
从pprint导入pprint
进口查询员
问题=[
查询者名单(
“大小”,
message=“您需要多大尺寸?”,
选项=[“大型”、“标准”、“中型”、“小型”、“微型”],
),
]
答案=询问者提示(问题)
pprint(答案)
whaaaat
示例:
从whaaaat导入提示符,打印json,分隔符
问题=[
{
“类型”:“列表”,
“名称”:“主题”,
“消息”:“您想做什么?”,
“选择”:[
“点比萨饼”,
“预订”,
分隔符(),
“询问营业时间”,
{“名称”:“联系支持”、“禁用”:“此时不可用”},
“与接待员交谈”,
],
},
{
“类型”:“列表”,
“名称”:“大小”,
“信息”:“您需要多大尺寸?”,
“选择”:[“大型”、“大型”、“标准”、“中型”、“小型”、“微型”],
“过滤器”:lambda val:val.lower(),
},
]
答案=提示(问题)
打印json(答案)
对于简单的选择,您可以使用该软件包。它简单、小,并且与其他包没有依赖关系
例如:
从简单术语菜单导入术语菜单
终端菜单=终端菜单([“条目1”、“条目2”、“条目3]”)
选项索引=终端菜单。显示()
您提到了click软件包,并提到您不确定如何实现此功能。这似乎是实现单选题的预期方式
生成的输出将不会像其他答案中提到的其他一些包那样好。但是,如果您计划发布库,则click可以很好地维护、处于活动状态,并且可以在UNIX和WIN-critical参数上工作。注意:simple\u term\u菜单在windows上不起作用。请参阅注释:(1)python inquirer上的Windows支持是实验性的(2)Whaaat过时了,开发人员在自述文件中声明他没有时间处理该项目。