Setting options from environment variables when using argparse

后端 未结 12 2012
执念已碎
执念已碎 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:37

    Another option:

        parser = argparse.ArgumentParser()
        env = os.environ
        def add_argument(key, *args, **kwargs):
            if key in env:
                kwargs['default'] = env[key]
            parser.add_argument(*args, **kwargs)
    
        add_argument('--type', type=str)
    

    Or this one, using os.getenv for setting default value:

    parser = argparse.ArgumentParser()
    parser.add_argument('--type', type=int, default=os.getenv('type',100))
    

提交回复
热议问题