python3中配置文件ini的使用详解----读写、list/dict/path等变量的应用、解码

文章目录

0.背景知识

1.ini文件的格式

2.ini文件读取方式

3.通过ini文件的变量的path,读取excel文件

4.ini文件的写入

5.ini文件的解码

 

0.背景知识

背景知识:
python3中,根据不同的工具或系统,见到过各种类型的配置文件,有json格式的、py格式的、ini格式的,yaml、txt、excel等等。但是,最常见的还是ini格式的配置文件。

为什么要用ini格式作为配置文件?
一般来说,如果只是读取变量信息,且这些变量信息一般都不需要变动或修改。那么最常用的py文件即可,直接导入读取即可,简单方便。但如果需要系统自动修改或增加信息的时候,使用ini文件确实是非常好的一个选择。
详情可参考:https://my.oschina.net/janzhen/blog/86189

1.ini文件的格式

# config.ini文件

[sys_config]
time = 12:30
mylist = [18, "alien", 90, "12alien"]
path = ../DB/my_excel.xls

[user_info]
name = alien
age = 18
pw = 123456

  • 每个[]圈起来是区域名,下面是对应这个区域的变量,且不同区域可以在通过系统增加、修改等
  • 变量不需要再使用“”号圈起来了,这个和py文件的变量有点区别
  • 读取完变量之后,所有的变量全部都是字符串str格式的,所以如果变量中如果有list,dict、json等信息,需要使用json.loads()方法把外面的“”的去掉,就变成数据的原始格式了。
  • 如果path变量,ini文件不需要使用“”,读取完之后变量就携带“”了,就直接可以用了。注意此时的ini文件的path是此文件相对变量文件的相对地址。或者直接把绝对地址写进去也行。

2.ini文件读取方式

在这里插入图片描述

# read_config.py文件

import configparser, json
import xlrd

config = configparser.ConfigParser()
config.read("../Tools/config.ini")

# 读取变量信息
mylist = config.get("sys_config", "mylist")
print(mylist, type(mylist), repr(mylist))
# 解析原始变量信息(去掉“”)
new_list = json.loads(mylist)
print(new_list, type(new_list), repr(new_list))
# path信息,直接就可以使用了
path = config.get("sys_config", "path")
print(path, type(path), repr(path))

 


[18, "alien", 90, "12alien"] <class 'str'> '[18, "alien", 90, "12alien"]'
[18, 'alien', 90, '12alien'] <class 'list'> [18, 'alien', 90, '12alien']
../DB/my_excel.xls <class 'str'> '../DB/my_excel.xls'

3.通过ini文件的变量的path,读取excel文件

在这里插入图片描述
在这里插入图片描述

# read_config.py文件

import configparser
import xlrd

config = configparser.ConfigParser()
config.read("../Tools/config.ini")

path = config.get("sys_config", "path")
print(path, type(path), repr(path))

workbook = xlrd.open_workbook(path)
# 根据sheet索引或者名称获取sheet内容
sheet1 = workbook.sheet_by_index(0)

# 获取单元格内容
print(sheet1.cell(1, 0).value)
print(sheet1.cell(1, 1).value)
print(sheet1.cell(1, 2).value)

 


../DB/my_excel.xls <class 'str'> '../DB/my_excel.xls'
18.0
alien
china


4.ini文件的写入

# read_config.py文件

import configparser

config = configparser.ConfigParser()
config.read("../Tools/config.ini")


try:
    config.add_section("Home")
    config.set("Home", "IP", "10.12.23.56")
    config.set("Home", "Mask", "255.255.255.0")
except configparser.DuplicateSectionError:
    print("Section 'Home' already exists")

config.write(open("../Tools/config.ini", "w"))

# 写入后的config.ini文件

[sys_config]
time = 12:30
mylist = [18, "alien", 90, "12alien"]
path = ../DB/my_excel.xls

[user_info]
name = alien
age = 18
pw = 123456

[Home]
ip = 10.12.23.56
mask = 255.255.255.0

5.ini文件的解码

如果ini里面的变量,有的值带中文字符,需要在打开的时候,使用“utf8”解码方式打开


config = configparser.ConfigParser()
config.read("../Tools/config.ini", encoding="utf8")

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值