繁体   English   中英

在Python Cmd模块中解析参数

[英]Parsing parameters in Python Cmd module

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

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

resize -file all -height 100 -width 200 -type jpeg

要么

resize -file 'a file.jpg' -type png -height 50 -width 50

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

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

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

你正在寻找optparseargparse 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())并且它将正确解析选项。

最好的选择是argparse模块。

我喜欢getopt,因为它很简单。

shlex模块怎么样? 我认为这正是出于这个目的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM