我正在使用 Python 的精彩 Cmd 库制作终端游戏。但我很好奇我是否能以某种方式将 argparse 代码放入其中。就像使用 argparse 来处理我的 cmd.Cmd() 类中的“args”一样。
为此,我真的希望 argparse 有办法手动将 args 传递给它。我浏览了文档,但没有注意到类似的东西。
最佳答案
parse_args()
接受一个可选参数 args
和要解析的列表(或元组)。 parse_args()
(不带参数)等价于 parse_args(sys.argv[1:])
:
如果您没有元组,而只有一个字符串,则可以使用 shlex.split()
完成类似 shell 的参数拆分
>>> shlex.split('"A" B C\\ D')
['A', 'B', 'C D']
请注意,
argparse
将打印用法和帮助消息以及 exit()
关于致命错误。您可以覆盖 .error()
来自己处理错误:class ArgumentParserNoExit(argparse.ArgumentParser):
def error(self, message):
raise ValueError(message) # or whatever you like
关于python-2.7 - 手动将命令传递到 argparse? | python 2.7,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42351385/