python - Python解析用户输入的方式与CLI输入相同吗?
问题描述
我正在构建一个 CLI,我刚刚发现了Fire,它是一种从命令行向函数传递参数的好方法。它非常干净和直观。
但是,我遇到的一个问题是我需要在程序仍在运行并且值在内存中时执行一些操作。所以为此我不能使用 Fire(或者至少我认为我不能)。但我想使用与 Fire 相同的东西。我认为我需要使用 input() 让用户输入一个字符串,但是我需要解释它。
对于那些不知道 Fire 是如何工作的人,这里是如何工作的。它将 CLI 命令转换为函数参数并使用这些值执行。
例子
command line:
function_name parameter1 parameter2 parameter3 --parameter6_name parameter6
python script:
def function_name(parameter1, parameter2, parameter3=0... parameter6_name='No'):
我可以想出几种方法,我可能会以粗略的方式手动进行此操作,但这会很困难,而且我认为我无法让它完全正确地工作。有没有像这样解析的现有方法?我已经尝试搜索了几个小时,但我不确定我是否知道针对此问题的正确搜索词。如果有人能指出我正确的方向,我将不胜感激。
编辑。说脚本称为script.py。我知道您可以使用 argparse 来调用:
script.py param1 param2 --param4_name param4
(认为我认为 Fire 更适合此目的)
我要做的不是在命令行命令期间传递参数以启动应用程序,而是在另一个 python 脚本运行时传递参数,使用类似 input() 的方法。前任。
python3 script.py
Type a search phrase for the option you want: input()
Choose a character to select the option: input()
Type the parameters for a function to call to use with that option: input()
option_func1 param1 param2 --param4_name param4
or
option_func2 param1 param2 --param4_name param4
(然后它使用初始选项中的值使用这些参数运行该函数)
解决方案
我建议使用argparse,一个模块可以很容易地编写用户友好的命令行界面
推荐阅读
- wso2 - 从 Carbon Admin Portal 获取 WSO2 身份服务器的版本号
- ios - 无法使用锚激活约束
- angular - 身份验证状态更改时重新触发路由器保护
- xml - XML Schema - 允许某些元素多次出现并需要其他元素
- json - 为全日历格式化 json
- python - 如何使用提交按钮更新我的 Django 数据库?
- python - Python 3.7.9:没有名为“discord”的模块
- php - 如何使for循环中的添加和子轨道数量按钮在php中正常工作
- spring-boot - MongoDB @Query 注释/查询的问题
- android - Android Kotlin:尝试在片段中检索上下文导致类型不匹配