欢迎光临散文网 会员登陆 & 注册

如何给自己的python程序添加外部配置文件

2019-12-28 17:35 作者:热心的裴同学  | 我要投稿

开始之前

最近写程序需要每次开始都要输入一大串数据,于是就研究了一下如何使用配置文件给我们的python来使用



现在开始

在windows中最常见的配置文件类型就是*.ini文件了

什么是INI:

INI文件格式是某些平台或软件上的配置文件的非正式标准,以节(section)和键(key)构成,常用于微软Windows操作系统中。这种配置文件的文件扩展名多为INI,故名。

windows中ini文件的图标


INI文件格式:

节(section)

节用方括号括起来,单独占一行,例如:

[section]

键(key)

键(key)又名属性(property),单独占一行用等号连接键名和键值,例如:

name=value

注释(comment)

注释使用英文分号(;)开头,单独占一行。在分号后面的文字,直到该行结尾都全部为注释,例如:

; comment text

使用python操作INI文件

python已经给我们内置了用来操作ini文件的模块configparser

导入模块:

import configparser

1, 创建对象

在操作之前首先要创建一个ConfigParser对

cf = configparser.ConfigParser()

这里的cf就是我们创建出来的对象了

2. 读取一个文件

现在我在代码文件同级目录中创建了一个01.ini的文件

其中有一个节叫做"me",节中分别有两个键"name"和"uid"和他分别对应的值

使用cf.read()方法进行读取

read方法的定义

这个方法需要传入一个文件的路径,还可以传递他的字符集编码(可选)

请注意:这里的filename需要是一个绝对路径

如何找到一个绝对路径

使用

rootPath = os.path.dirname(__file__)

这个方法即可返回当前 所执行python文件的目录

这个路径是最后不带斜杠的,所以需要在末尾拼接一个"\"

获取当前工作目录

没有报错,没有警告,我们确实成功读取了01.ini这个文件

3.读取文件中的内容

读取文件内容的方法有好几种,

    1, 读取所有节的名称

        使用sections()方法可以获取文件中所有节的名称,他会返回一个列表对象

成功获取节的名称列表

    2. 获取一个节中所有键的值

        meKeys = cf.options("me")

获取到所有键的值

    3. 获取一个节中的所有元素

    meItems = cf.items("me")

他会返回一个嵌套在列表中的很多元组

这些元组就是每一个键值对

获取所有内容

    4.获取对节中对应键的值

        cf,get("节","键")

4. 添加和修改内容

    1. 添加节

    cf.add_section("B")

    当你执行这个方法后你会惊奇的发现这个方法并没有起作用

    不要着急,原因很简单,我们并没有保存文件,我们只是保存了对象中的内容

    使用cf.write(文件对象)来保存文件


    2. 设置对应键的值

    cf.set("B", "a", "123")


        3. 删除节

            cf.remove_section("B")

                5. 删除键和值

                    cf.remove_option("me", "uid")

                

                

总结:

使用python对ini文件的操作还是很方便的,同样也非常感谢configparser这个模块的开发人员


但是回头想想.json文件他不香么

全部的代码

import configparser
import os

# 创建对象
cf = configparser.ConfigParser()
# 获取当前工作路径
rootPath = os.path.dirname(__file__)
# 输出当前的工作目录
print(rootPath)
# 读取一个文件
cf.read(rootPath + "\\01.ini", "gbk")
# 获取文件中所有节的名称
sections = cf.sections()
print(sections)


# 获取一个节中所有的键
meKeys = cf.options("me")
print(meKeys)
# 获取节中所有内容
meItems = cf.items("me")
print(meItems)
# 获取对应节中对应键的值
name = cf.get("me", "name")
print(name)
# 添加节
cf.add_section("B")

# 设置键值
cf.set("B", "a", "123")

# 删除节
cf.remove_section("B")

# 删除键
cf.remove_option("me", "uid")

# 保存文件
cf.write(open(rootPath+"\\01.ini", "w"))


如何给自己的python程序添加外部配置文件的评论 (共 条)

分享到微博请遵守国家法律