【configparser】读取参数

参考链接:
讲解详细:
https://www.jianshu.com/p/faa166ebab41
https://blog.csdn.net/Mr_Cat123/article/details/108982842

一、定义

1.1 简介
使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是configParser
configParser解析的配置文件的格式比较象ini的配置文件格式,就是文件中由多个section构成,每个section下又有多个配置项
1.2 配置文件格式

[db]
db_host = 127.0.0.1
db_port = 69
db_user = root
db_pass = root
host_port = 69
 
[concurrent]
thread = 10
processor = 20

说明:括号“[ ]”内包含的为section。紧接着section 为类似于key-value 的options 的配置内容。

二、读取文件

2.1 初始化读取器

import configparser
config = configparser.ConfigParser()

2.2在读取器下读入一个文件

config.read("ini", encoding="utf-8")
  • 函数read(filenames, encoding=None)
  1. 读入名为filenames的文件,读入的方式默认为encoding=None,一般可以设置为encoding="utf-8"
  2. 读取并解析按名称给出的命名配置文件的可迭代性。 也允许使用单个文件名。 不存在的文件将被忽略。 返回成功读取文件的列表。

三、生成.ini文件

参考链接:
https://blog.csdn.net/qq_43280079/article/details/103939564

  1. 新建一个 .txt的空白文件
    在这里插入图片描述
  2. 编写
    每个模块叫一个section,名字用中括号 " [] " 括起来
    然后每一行写一个option ,每个选项就是一个option。直接写名字,后面加 " = " 再加上它的值就行
    可以在配置文件中加入注释 ,但是注释必须是单独的一行,且以 “#” 开头。只是每次运行时不会读入注释,只要运行一次,写入文件后,所有的注释都会消失。所以仅仅用于第一次初始化时有用(如果不进行写入,则可以一直在)
  3. 改为 .ini文件
    建立ini文件的具体方法:
    文件夹选项 - 查看 - 去掉“隐藏已知文件的扩展名”前面的√。这样一来,你建立的那个记事本的扩展名就显示出来了“*.txt”。然后,你把这个.txt扩展名更改为.ini就可以了
    在这里插入图片描述
  4. .ini的内容
    在这里插入图片描述

四、变量的修改

  1. 创建类,读入文件并查看section在这里插入图片描述out:[‘regular’, ‘option’]
  2. 取出对应的值
#1.get方法
print(config.get("section1","option2"))
#2.另一种读取方法
print(config["section2"]["password"])
  1. .ini文件中修改变量
    修改某个option的值,如果不存在则会出现创建
config.set("option","BUDGET",'800')
config.write(open("../config/HRA.ini", "w"))

看图

5.

五、文件的查看

在这里插入图片描述

import configparser 
config = configparser.ConfigParser() 
config.read("./configurations/PEMS08_astgcn.conf")
  • 查看sections
config.sections()

out:['Data', 'Training']

  • 查看sections中的变量
config.options("Data") 

out:['adj_filename', 'graph_signal_matrix_filename', 'num_of_vertices', 'points_per_hour', 'num_for_predict', 'len_input', 'dataset_name']

六、变量读取

  • 默认读取字符型
config.get("Data","len_input") 

out : '12'
等价方法:config['Data']['len_input']

  • 读取为int型
config.getint("Data","len_input")  

out:12

  • 读取为float型
config.getfloat("Data","len_input")  

out:12.0

  • 读取为布尔型
config.getboolean("Training","in_channels")  

out:True
提醒:布尔读取的时候原值只能为0或着1,如果为12的话,则报错。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值