def config_and_args_parser(conf_path, section, description=''):
"""
Recipe mostly taken from
http://blog.vwelch.com/2011/04/combining-configparser-and-argparse.html
"""
# Parse directory
parser = argparse.ArgumentParser(
description=description)
parser.add_argument('-c', '--config-file', required=False,
default=conf_path, help='Specify config file', metavar='FILE')
args, remaining_argv = parser.parse_known_args()
# Try reading the conf file
try:
import ConfigParser
config = ConfigParser.SafeConfigParser()
config.read([args.config_file])
defaults = dict(config.items(section))
print('Loading config file: {}'.format(args.config_file))
except Exception as e:
raise RuntimeError('Failed reading %s: %s' % (args.config_file, e))
parser.set_defaults(**defaults)
# parser.add_argument("--option1", help="some option")
args = parser.parse_args(remaining_argv)
return args
评论列表
文章目录