python如何调用参数配置文件_【已解决】Python中支持命令行参数是通过解析配置文件而获得参数值...

【问题】

一个python脚本,通过命令行传递参数,但是由于参数太多,所以想要通过一个单独的配置文件,比如config.ini之类的,传递进去,然后找到合适的解析函数,甚至是自己写解析函数,来实现参数传递。

【解决过程】

1.网上找了下,参考:

然后写了通过配置文件为json的格式,然后读取文件并解析出来参数配置,但是中间出错了,后来还是自己搞定了该问题,详细过程可参看:

2.解决了上述问题,自然,也就可以通过传递json文件进来,解析后,就可以得到参数了。

并且,尝试了一下,把原先某个变量值为字符串的“yes”,改为true,也是可以被正确解析为bool类型的True的。

所以,通过json来传递和解析得到变量值,还是很方便的。

【总结】

想要在Python中,通过配置文件传递命令行参数,可以通过将配置文件内容写成json格式,然后读取的时候,通过json.load,这样就可以实现参数传递和解析了。

参考代码如下:cfgFile = open('config.json','r');

cfgData = cfgFile.read();

#print "type(cfgData)=",type(cfgData);

#print "cfgFile=",cfgData;

jsonCfg = json.loads(cfgData);

#jsonCfg = json.loads(cfgData, encoding="utf-8");

#print "type(jsonCfg)=",type(jsonCfg);

#print "jsonCfg=",jsonCfg;

cfgDict = jsonCfg;

#for key in cfgDict.keys() :

# print type(key)," ",type(cfgDict[key]),", [",key,"]=",cfgDict[key];

# print "-----"

配置文件config.json为:{

"srcUrl"    :   https://www.crifan.com,

"startfromURL": "",

"limit"     :   0,

"processComments":  true,

"maxXmlSize"    :   2097152,

"replMusicCfgFile": "",

"modifiedPostPattern" : "modifiedPostPattern.txt"

}

注意,需要将配置文件存为ANSI编码的,如果其中包含非ANSI字符,比如中文字符,那最好存为UTF-8或者其他格式,然后在调用json.loads的时候,添加对应的encoding,指定解码格式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值