我经常使用此模式,以至于我打包了一个简单的 *** 作类来处理它:
import argparseimport osclass EnvDefault(argparse.Action): def __init__(self, envvar, required=True, default=None, **kwargs): if not default and envvar: if envvar in os.environ: default = os.environ[envvar] if required and default: required = False super(EnvDefault, self).__init__(default=default, required=required, **kwargs) def __call__(self, parser, namespace, values, option_string=None): setattr(namespace, self.dest, values)
import argparsefrom envdefault import EnvDefaultparser=argparse.ArgumentParser()parser.add_argument( "-u", "--url", action=EnvDefault, envvar='URL', help="Specify the URL to process (can also be specified using URL environment variable)")args=parser.parse_args()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)