Python----configparser模块的用法(python configparse)

网友投稿 434 2022-09-04


Python----configparser模块的用法(python configparse)

1 configparser 使用get方式读取.ini配置文件的配置内容

(1)首先编写如下所示的env.ini配置文件

[server]ip=192.168.1.200port=22username=rootpassword=root[personal]name=redrose2100city=nanjinggithub=redrose2100.github.io

(2) 编写解析.ini配置文件的python代码

import configparserconfig=configparser.ConfigParser()config.read("env.ini","utf-8")print(config.get("server","ip"))print(config.get("personal","name"))

运行结果为:

192.168.1.200

2 使用数组下标的方式读取.ini配置文件的内容

env.ini的内容同上述1中的内容

通过数组下标的方式读取配置文件内容的代码如下:

import configparserconfig=configparser.ConfigParser()config.read("env.ini","utf-8")print(config["server"]["ip"])print(config["personal"]["name"])

执行结果如下:

192.168.1.200

3 使用configparser写配置文件

import configparserconfig=configparser.ConfigParser()config["server"]={ "ip":"192.138.1.200", "port":22, "username":"root", "password":"root"}config["personal"]={ "name":"redrose2100", "city":"nanjing"}with open("test.ini","w") as f: config.write(f)

执行之后,在当前目录下会生成一个test.ini文件,其内容如下:

[server]ip = 192.138.1.200port = 22username = rootpassword = root[personal]name = redrose2100city =

4 configparser 对section常用的操作:

(1)has_section(section) 判断读取的config对象是否还有指定的section(2)sections() 获取读取到的config对象的所有sections列表(3)add_section(section) 给读取到的config对象增加一个section,注意此时增加的section只是在config对象中,并没有写入到ini配置文件中(4)remove_section(section) 给读取到的config对象删除一个section实例代码如下所示:

import configparserconfig=configparser.ConfigParser()config.read("env.ini","utf-8")print(config.has_section("server"))print(config.sections())config.add_section("kafka")print(config.sections())config.remove_section("kafka")print(config.sections())

运行结果如下:

import configparserconfig=configparser.ConfigParser()config.read("env.ini","utf-8")print(config.has_section("server"))print(config.sections())config.add_section("kafka")print(config.sections())config.remove_section("kafka")print(config.sections())

5 configparser对option常用的操作,如下代码演示:

import configparserconfig=configparser.ConfigParser()config.read("env.ini","utf-8")print(config.has_option("server","ip"))print(config.options("server"))config.set("server","test","test")print(config.options("server"))config.remove_option("server","test")print(config.options("server"))

执行结果为:

True['ip', 'port', 'username', 'password']['ip', 'port', 'username', 'password', 'test']['ip', 'port', 'username', 'password']

6 configparser的对象可以类似字典一样使用,但是类型不是字典,代码演示如下:

import configparserconfig=configparser.ConfigParser()config.read("env.ini","utf-8")for key in config["server"].keys(): print(key)for key,value in config["server"].items(): print(key,value)for value in config["server"].values(): print(value)item=config["server"].popitem()print(type(item))print(item)port=config["server"].pop("port")print(port)for key,value in config["server"].items(): print(key,value)username=config["server"].get("username","no found")print(username)print(type(config["server"]))

运行结果如下:

ipportusernamepasswordip 192.168.1.200port 22username rootpassword root192.168.1.20022rootroot('ip', '192.168.1.200')22username rootpassword rootroot

7 可以将获取的类型直接转换为期望的数据类型,可用的方法有:

getintgetbooleangetfloatget下面将配置文件更新如下内容:

[server]ip=192.168.1.200port=22username=rootpassword=rootis_linux=Trueprice=100.24[personal]name=redrose2100city=nanjinggithub=redrose2100.github.io

实例代码如下:

import configparserconfig=configparser.ConfigParser()config.read("env.ini","utf-8")ip=config["server"].get("ip")port=config["server"].getint("port")is_linux=config["server"].getboolean("is_linux")price=config["server"].getfloat("price")print(ip,type(ip))print(port,type(port))print(is_linux,type(is_linux))print(price,type(price))

运行结果如下:

192.168.1.200 22 True 100.24

8 configparser标准库对解析.conf文件与解析.ini文件的使用方法是完全一样的,下面只演示一部分:

创建一个env.conf文件,内容如下:

[server]ip=192.168.1.200port=22username=rootpassword=rootis_linux=Trueprice=100.24[personal]name=redrose2100city=nanjinggithub=redrose2100.github.io

编写如下代码:

import configparserconfig=configparser.ConfigParser()config.read("env.conf","utf-8")print(config.get("server","ip"))print(config.get("personal","name"))print(config["server"]["ip"])print(config["personal"]["name"])

运行结果如下:

192.168.1.200redrose2100192.168.1.200


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:将多个txt文件中的内容写在一个txt中的方法(txt文件内容怎么分成多个)
下一篇:Mybatis实现分包定义数据库的原理与过程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~