欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/49954705
一、argparse
argparse,是Python标准库中推荐使用的编写命令行程序的工具。也可以用于读取配置文件。
1.conf配置文件(test.conf):
{ "game0": { "ip":"127.0.0.1", "port":27182, "type":1 }, "game1": { "ip":"127.0.0.1", "port":27183, "type":0 }, "game2": { "ip":"127.0.0.1", "port":27184, "type":0 } }
2.python代码(test.py):
# -*- coding:utf-8 -*- import json import sys import argparse def parse_args(args): parser = argparse.ArgumentParser(prog="GameServer") parser.add_argument('configfile', nargs=1, type=str, help='') parser.add_argument('--game', default="game", type=str, help='') return parser.parse_args(args) def parse(filename): configfile = open(filename) jsonconfig = json.load(configfile) configfile.close() return jsonconfig def main(argv): args = parse_args(argv[1:]) print "args:",args config = parse(args.configfile[0]) info = config[args.game] _ip = info['ip'] _port = info['port'] print "type:",type(_port) _type = info['type'] print "print:%s,%d,%d"%(_ip,_port,_type) if __name__ == '__main__': main(sys.argv)
启动脚本:python test.py test.conf --game=game0
ConfigParser是Python读取conf配置文件标准的库。
1.conf配置文件(test2.conf):
[game0] ip = 127.0.0.1 port = 27182 type = 1 [game1] ip = 127.0.0.1 port = 27183 type = 0 [game2] ip = 127.0.0.1 port = 27184 type = 0
# -*- coding:utf-8 -*- import ConfigParser import sys def parse_args(filename): cf = ConfigParser.ConfigParser() cf.read(filename) #return all sections secs = cf.sections() print "sections:",secs #game0 section game0 = cf.options("game0") print "game0:",game0 items = cf.items("game0") print "game0 items:",items #read _ip = cf.get("game0","ip") _port = cf.getint("game0", "port") _type = cf.getint("game0", "type") print "print:%s,%d,%d"%(_ip,_port,_type) def main(argv): parse_args(argv[1]) if __name__ == '__main__': main(sys.argv)
启动脚本:python test2.py test2.conf