Tag: argparse

Python argparse和bash完成

我想自动完成我的Python脚本也参数。 我从来没有真正理解bash_completion是如何工作的(用于论证),但是在我深入了解之后,我明白了这一点: 它使用“完成”将完成function绑定到命令 每个完成函数基本上都是参数parsing器的副本 第二点尤其不是很好,因为我想自动生成它。 最好的情况是,shell会在每个TAB上向我的程序询问要完成什么,但是我有这样的印象:这不可行,是对的吗? 第二个select可能只是将一个转换器从一个argparseparsing器写到一个正确完成的shell函数中。

Python argparse:至less需要一个参数

我一直在使用argparse来进行Python程序的准备, -prepare或两者: parser = argparse.ArgumentParser(description='Log archiver arguments.') parser.add_argument('-process', action='store_true') parser.add_argument('-upload', action='store_true') args = parser.parse_args() 没有至less一个参数,程序是没有意义的。 如何configurationargparse强制至lessselect一个参数? 更新: 在评论之后:什么是至less有一个选项参数化程序的Pythonic方法?

python argh / argparse:我如何传递一个列表作为命令行参数?

我想使用argh库将参数列表传递给python脚本。 可以采取如下input的东西: ./my_script.py my-func –argA blah –argB 1 2 3 4 ./my_script.py my-func –argA blah –argB 1 ./my_script.py my-func –argA blah –argB 我的内部代码如下所示: import argh @argh.arg('–argA', default="bleh", help='My first arg') @argh.arg('–argB', default=[], help='A list-type arg–except it\'s not!') def my_func(args): "A function that does something" print args.argA print args.argB for b in args.argB: print int(b)*int(b) #Print […]

有一个破折号选项argparse

我想在argparse模块中有一些选项,例如–pm-export但是当我尝试像args.pm-export一样使用它时,我得到的错误是没有属性pm 。 我怎样才能解决这个问题? 有没有可能有-在命令行选项?

你如何编写python模块的argparse部分的testing?

我有一个使用argparse库的Python模块。 如何为代码库的这一部分编写testing?

用Python argparse创build隐藏的参数

是否有可能添加一个参数到一个python argparse.ArgumentParser没有它出现在用法或帮助( script.py –help帮助)?

argparse模块如何添加选项没有任何参数?

我已经使用argparse创build了一个脚本。 脚本需要将configuration文件名作为选项,用户可以指定是否需要完全执行脚本或仅对其进行模拟。 要传递的参数: ./script -f config_file -s或./script -f config_file 。 这对于-f config_file部分是可以的,但是不断询问我是否是-s选项的参数,并且不应该跟随任何参数。 我试过这个: parser = argparse.ArgumentParser() parser.add_argument('-f', '–file') #parser.add_argument('-s', '–simulate', nargs = '0') args = parser.parse_args() if args.file: config_file = args.file if args.set_in_prod: simulate = True else: pass 有以下错误: File "/usr/local/lib/python2.6/dist-packages/argparse.py", line 2169, in _get_nargs_pattern nargs_pattern = '(-*%s-*)' % '-*'.join('A' * nargs) TypeError: can't multiply […]

Python argparse:默认值或指定的值

我想有一个可选参数,默认值为一个值,如果只有标志存在没有指定的值,但存储用户指定的值而不是默认值,如果用户指定一个值。 有没有可用的行动? 一个例子: python script.py –example # args.example would equal a default value of 1 python script.py –example 2 # args.example would equal a default value of 2 我可以创build一个动作,但想看看是否有现成的方法来做到这一点。

Argparse:“可选参数”下列出的必要参数?

我使用下面的简单代码来parsing一些参数; 注意其中一个是必需的。 不幸的是,当用户不提供参数的情况下运行脚本时,显示的用法/帮助文本并不表示有一个非可选的参数,这让我感到非常困惑。 我怎么能得到python表明一个参数是不是可选的? 这里是代码: import argparse if __name__ == '__main__': parser = argparse.ArgumentParser( description='Foo') parser.add_argument('-i','–input', help='Input file name', required=True) parser.add_argument('-o','–output', help='Output file name', default="stdout") args = parser.parse_args() print ("Input file: %s" % args.input ) print ("Output file: %s" % args.output ) 在不提供所需参数的情况下运行上面的代码时,我得到以下输出: usage: foo.py [-h] -i INPUT [-o OUTPUT] Foo optional arguments: -h, –help […]

使用argparse获取选定的子命令

当我用python argparse使用子命令时,我可以得到选定的参数。 parser = argparse.ArgumentParser() parser.add_argument('-g', '–global') subparsers = parser.add_subparsers() foo_parser = subparsers.add_parser('foo') foo_parser.add_argument('-c', '–count') bar_parser = subparsers.add_parser('bar') args = parser.parse_args(['-g, 'xyz', 'foo', '–count', '42']) # args => Namespace(global='xyz', count='42') 所以args不包含'foo' 。 简单地写sys.argv[1]是不行的,因为可能的全局参数。 我怎样才能得到子命令本身?