python读取配置文件ini的方法、部分BUG和解决

我之前处理数据的时候,一直用open+split,取字符串序号(别笑)

file=open('1.log','r')
data=file.read()
data=data.split("\n")
# 想要第三个参数的话:
l3=data[2]

上网查,参数通常参数用ini保存。
现在用得少(因为不保密)

TIP:红警、骑砍这两个配置文件的ini是明码写在系统里的。
现在比较推荐用键值……
但是我自己的话,因为没有啥可以保密的,就直接用ini了。
————————————————————————————

上网查,python有一个模块configparser。

然后,这个键值有这几个问题:

import  configparser
conf = configparser.ConfigParser()
conf.read(file_path, encoding='utf-8')
conf.set(section, '%','%11')

当场报错。

也就说说:configparser读取到%的时候会报错。
网上查询,网络上有解决方案:修改configparser的安全协议。(因为是开源的)
不想改……

然后第二个问题:不识别大小写。大小写默认会转化为小写……
我勒了去……

# 提前创建d1文件
import  configparser
conf = configparser.ConfigParser()
conf.read(file_path, encoding='utf-8')
conf.set(section, 'file','C:\\D1.txt')

# 然后从configparser读取该键值

file.open(file'r')

也报错,提示没有d1.txt,大小写不分……

这也太拉了,生产队的驴也不敢这么拉。用了configparser,就不能读大写了?


_________________________________

然后上网查,configobj可以识别大小写。
TIP:python3自带configparser,但是不带configobj。
直接pip install configobj。

整个模块大概不到200k,可以接受(pandas300M太大了)
然后配置键值

import configobj
config = configobj.ConfigObj('passwd.ini')
config['passwd']={}
config['passwd']['user']="%%%%E1"

可以读取大小写,也可以读取%,稳定不报错。

good。

配置键值:

import configobj
config = configobj.ConfigObj('passwd.ini')
config['passwd']={}
config['passwd']['user']="E1"
config.write()

即可写入和修改键值

读取键值

import configobj
config = configobj.ConfigObj('passwd.ini')
user = config['passwd']['user']
print(user)

成功获取。

配置一个文件(比如passwd.ini)
然后在GIT上配置.gitignore,写入/passwd.ini。
即可不上传保密。

网上有说用json串的。我看了看,和ini是一个模子刻出来的。基本上逻辑应该是完全一致的。
——————————————————————
2.24更新:
configobj不支持中文,是以ascii码保存文件的。
当储存中文的时候,会报错:无法储存ascii。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值