2

有没有办法可以在 python 中配置optparse以不开始-?所以而不是

%program -d optionvalue

我明白了

%program d optionvalue

目前,当我尝试做

parser.add_option('d', '--database')

我收到以下错误:

optparse.OptionError: invalid option string 'd': must be at least two characters long

任何帮助,将不胜感激!谢谢

4

3 回答 3

6

简而言之,没有。

用于提供额外信息以指导或定制程序执行的参数。选项有许多不同的语法;传统的 Unix 语法是连字符 (“-”) 后跟一个字母,例如 -x 或 -F。此外,传统的 Unix 语法允许将多个选项合并到一个参数中,例如 -x -F 等价于 -xF。GNU 项目引入了 -- 后跟一系列连字符分隔的单词,例如 --file 或 --dry-run。这是 optparse 提供的仅有的两种选项语法。

http://docs.python.org/library/optparse.html#terminology

你必须自己解析。

于 2011-05-20T01:33:26.037 回答
1

parse_args()允许您提供自己的参数列表,而不仅仅是 using sys.argv[1:],它默认使用。所以你可以预处理命令行参数,然后将它们传递给 optargs。假设您希望所有 1 个字符的参数都算作选项键:

orig_args = sys.argv[1:]
new_args = []
for arg in orig_args:
    if len(arg) == 1:
        arg = '-' + arg
    new_args.append(arg)

(options, args) = parser.parse_args(new_args)

(你也可以继承OptionParser并把它放在那里)

于 2011-05-20T16:41:23.297 回答
0

您可以强制使用回调操作:

http://docs.python.org/library/optparse.html#callback-example-6-variable-arguments

这使您可以原始访问左右参数

于 2011-05-20T01:35:26.983 回答