在 Python 中使用 optparse

发布于 2024-11-08 17:54:17 字数 422 浏览 0 评论 0原文

有没有办法可以在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

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

Is there a way I can configure optparse in Python to not take the beginning -? So instead of

%program -d optionvalue

I get

%program d optionvalue

Currently, when I try to do

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

i get the following error:

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

Any help would be appreciated! Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

a√萤火虫的光℡ 2024-11-15 17:54:17

简而言之,不。

用于提供额外的参数
指导或定制的信息
程序的执行。有许多
选项的不同语法;这
传统的 Unix 语法是连字符
(“-”) 后跟一个字母,
例如-x 或-F。另外,传统的 Unix
语法允许多个选项
合并为单个参数,例如 -x
-F 相当于-xF。 GNU 项目推出——随后是
由连字符分隔的一系列单词,例如
--file 或 --dry-run。 这是仅有的两个选项语法
optparse。

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

你必须自己解析它。

In short, no.

an argument used to supply extra
information to guide or customize the
execution of a program. There are many
different syntaxes for options; the
traditional Unix syntax is a hyphen
(“-“) followed by a single letter,
e.g. -x or -F. Also, traditional Unix
syntax allows multiple options to be
merged into a single argument, e.g. -x
-F is equivalent to -xF. The GNU project introduced -- followed by a
series of hyphen-separated words, e.g.
--file or --dry-run. These are the only two option syntaxes provided by
optparse.

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

You would have to parse that yourself.

金橙橙 2024-11-15 17:54:17

parse_args() 允许您提供自己的参数列表,而不仅仅是使用默认情况下使用的 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 并将其放在那里)

parse_args() allows you to provide your own argument list, not just using sys.argv[1:], which it uses by default. So you could preprocess the commandline arguments, and then pass them to optargs. Assuming you want all 1-character arguments to count as option keys:

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)

(you could also subclass OptionParser and put it there)

枕梦 2024-11-15 17:54:17

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

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

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

You may be able to force with use callback action:

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

which gives you raw access to left and right args

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文