Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用select接口创建Python CLI_Python_Terminal_Command Line Interface - Fatal编程技术网

使用select接口创建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,并

我想创建一个带有项目选择界面的Python CLI,该界面允许用户从列表中选择项目。比如:

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过时了,开发人员在自述文件中声明他没有时间处理该项目。