在Python Cmd模块中解析参数

Mr_*_*imp 2 python cmd

我正在使用Cmd模块在Python中编写命令行工具.

我希望能够发出如下命令:

resize -file all -height 100 -width 200 -type jpeg
Run Code Online (Sandbox Code Playgroud)

要么

resize -file 'a file.jpg' -type png -height 50 -width 50
Run Code Online (Sandbox Code Playgroud)

[编辑]要明确上述命令是从终端进入我的命令行应用程序.上面的行将调用我的Cmd模块的do_resize(self,line)方法,并将参数作为字符串传递.因此,OptParse和argparse没有做我需要的东西,因为它们似乎只能从sys.argv获取参数.

有些参数是必需的,有些是可选的.有些人在使用其他人时变得必需.

解析参数字符串的最佳方法是什么?我已经读过Python中的工具可以让这很容易,但我不确定我在寻找什么.

mai*_*450 7

你正在寻找optparse(argparse for python 2.7+)

编辑:实际上根据部分文档,你可以调用函数parse_args传递一个参数列表,这些参数会产生(但不限于)sys.argv[1:]

所以,如果你有例如args_str = '-file all -height 100 -width 200 -type jpeg'你可以打电话parser.parse_args(args_str.split()),它将正确解析选项.