Python 以与 CLI 输入相同的方式解析用户输入?

Python parse user input the same way as CLI input?

我正在构建一个 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。我知道您可以使用 argparsse 来调用:

script.py param1 param2 --param4_name param4

(我认为 Fire 更适合这个目的)

我想要做的不是在启动应用程序的命令行命令期间传递参数,而是在另一个 python 脚本是 运行 时传递参数,使用类似输入的东西().例如

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,一个模块可以轻松编写用户友好的命令行界面