我注意到Python 2.7文档包含另一个命令行解析模块.除了getopt
和optparse
我们现在有argparse
.
为什么还创建了另一个命令行解析模块?我为什么要用它而不是optparse
?是否有我应该了解的新功能?
Optparse,旧版本只是忽略了所有无法识别的参数并继续.在大多数情况下,这并不理想,并且在argparse中已更改.但是在某些情况下,您希望忽略任何无法识别的参数并解析您指定的参数.
例如:
parser = argparse.ArgumentParser()
parser.add_argument('--foo', dest="foo")
parser.parse_args()
$python myscript.py --foo 1 --bar 2
error: unrecognized arguments: --bar
Run Code Online (Sandbox Code Playgroud)
反正有没有覆盖这个?
我怎样才能取得选择结果
opt, args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)
并把它放在一个字典?Python调用选择"值实例",我找不到任何方法将值实例转换为列表或字典.一个人不能以这种方式从选项中复制项目,
for i in opt:
myDict[i] = opt[i]
Run Code Online (Sandbox Code Playgroud)
相反,它笨拙,
myDict[parm1] = opt.parm1
myDict[parm2] = opt.parm2
Run Code Online (Sandbox Code Playgroud)
这意味着每次添加选项时,我都必须更新此代码; 应该有办法让这个照顾自己.
有没有办法在显示帮助--help时使Python的optparse打印成为选项或标志的默认值?
我正在我的程序中使用python optparse模块,我很难找到一种简单的方法来解析包含值列表的选项.
例如:
--groups one,two,three.
Run Code Online (Sandbox Code Playgroud)
我希望能够以列表格式访问这些值options.groups[]
.是否有optparse选项将逗号分隔值转换为列表?或者我必须手动执行此操作吗?
我需要解析一个命令行
script.rb <mandatory filename> [options]
Run Code Online (Sandbox Code Playgroud)
用optparse.
当然我可以写一些自定义代码来处理文件名,然后传递ARGV
给optparse,但也许有一种更简单的方法呢?
编辑:还有另一种解析这样一个命令行的hacky方法,那就是传递['--mandatory-filename'] + ARGV
给optparse,然后处理--mandatory-filename
选项.
我不知道是什么optparse
的metavar
参数的用途.我看到它四处使用,但我看不出它的用途.
有人能说清楚吗?谢谢.
使用python的optparse模块我想在常规使用输出下面添加额外的示例行.我当前的help_print()输出如下所示:
usage: check_dell.py [options]
options:
-h, --help show this help message and exit
-s, --storage checks virtual and physical disks
-c, --chassis checks specified chassis components
Run Code Online (Sandbox Code Playgroud)
我想在我的工作中包含较少*nix识字用户的用法示例.像这样的东西:
usage: check_dell.py [options]
options:
-h, --help show this help message and exit
-s, --storage checks virtual and physical disks
-c, --chassis checks specified chassis components
Examples:
check_dell -c all
check_dell -c fans memory voltage
check_dell -s
Run Code Online (Sandbox Code Playgroud)
我怎么做到这一点?optparse选项允许哪些选项?当前代码:
import optparse
def main():
parser = optparse.OptionParser()
parser.add_option('-s', '--storage', action='store_true', default=False, help='checks virtual and physical disks') …
Run Code Online (Sandbox Code Playgroud) 作为中提到的文档中optparse.OptionParser
使用的IndentedHelpFormatter
输出格式选项的帮助,对此,我发现了一些API文档.
我想在使用文本中显示所需的位置参数的类似格式的帮助文本.是否有适配器或简单的使用模式可用于类似的位置参数格式化?
优选仅使用stdlib.Optparse确实很棒,除了这个格式细微差别,我觉得我们应该能够修复而不导入整个其他包.:-)
python formatting command-line optparse command-line-arguments
我希望能够使用ruby的OptionParser来解析表单的子命令
COMMAND [GLOBAL FLAGS] [SUB-COMMAND [SUB-COMMAND FLAGS]]
Run Code Online (Sandbox Code Playgroud)
喜欢:
git branch -a
gem list foo
Run Code Online (Sandbox Code Playgroud)
我知道我可以切换到一个不同的选项解析器库(如Trollop),但我有兴趣从OptionParser中学习如何做到这一点,因为我想更好地学习库.
有小费吗?
optparse ×10
python ×8
argparse ×2
command-line ×2
ruby ×2
dictionary ×1
formatting ×1
getopt ×1
optionparser ×1