我正在使用argparse库构建命令行界面来解析用户输入。在一个阶段,我想接受诸如"'test', x=False"
之类的用户输入,并将其用于诸如func('test', x=False)
之类的功能中。
我尝试使用ast.literal_eval来执行此操作,但是它在等号处遇到语法错误。 (我做过ast.literal_eval("("+args+")")
,其中args
在示例上方)
有人知道这样解析用户输入的安全方法吗?最好不要使用eval,尽管在最坏的情况下我也可以使用eval,它是一个CLI工具。
编辑(对于那些据说手动使用输入的人():我需要工具来解析命令运行时的输入(这是一个python模块,我希望能够像python3 -m hmcli.raw --args "'test', x=False"
那样被调用args
可以灵活使用,因为所使用的功能可以有所不同。