Setting options from environment variables when using argparse

后端 未结 12 1963
执念已碎
执念已碎 2020-12-08 04:06

I have a script which has certain options that can either be passed on the command line, or from environment variables. The CLI should take precedence if both are present, a

12条回答
  •  有刺的猬
    2020-12-08 04:50

    You can use OptionParser()

    from optparse import OptionParser
    
    def argument_parser(self, parser):
        parser.add_option('--foo', dest="foo", help="foo", default=os.environ.get('foo', None))
        parser.add_option('--bar', dest="bar", help="bar", default=os.environ.get('bar', None))
        return(parser.parse_args())
    
    parser = OptionParser()
    (options, args) = argument_parser(parser)
    foo = options.foo
    bar = options.bar
    print("foo: {}".format(foo))
    print("bar: {}".format(bar))
    

    shell:

    export foo=1
    export bar=2
    python3 script.py
    

提交回复
热议问题