Python-通过configparser读写配置文件
Python读写配置文件:
1.创建配置文件(文件名以.conf或.ini结束的文件表示配置文件)

2.导入所需模块 OS, configparser
>>> import os
>>> from configparser import ConfigParser
3.将python工作目录定位到配置文件所在目录
>>> os.getcwd() #返回当前工作目录
'C:\\Users\\ASUS'
>>> os.chdir("Desktop\\config\\")#切换工作目录
>>> os.getcwd()
'C:\\Users\\ASUS\\Desktop\\config'
4.实例化一个ConfigParser对象用于操作配置文件
>>> cf = ConfigParser()
5.操作配置文件(增删改查)
名词解释:
section:分组名称,使用 [] 表示,如[窗帘]
options:section分组下 一组信息中 等号 左边的值,可以理解为key

读操作:
cf.read(filename)
返回文件名 列表
>>> cf.read("config.conf")
['config.conf']
当访问的文件名不存在时,返回一个空列表
>>> cf.read(("confi.ini"))
[]
支持传入一个元组,同时打开多个文件
>>> cf.read(("config.ini","config.conf"))
['config.ini', 'config.conf']
cf.sections()
返回一个列表,包含所有分组名称
>>> cf.sections()
['窗帘', '石头', '游戏角色']
cf.options(section名)
返回一个列表,元素为: 指定section分组下option名
>>> cf.options("窗帘")
['color', 'width', 'height', 'picture']
cf.get(section名,option名)
返回一个字符串 内容为指定section分组下option所对应的值 (可以理解为Value)
>>> cf.get("窗帘","color")
'pink'
写操作:
创建一个新的日志文件shop.ini
通过os.chdir()确认当前目录下没有shop.ini文件
>>> os.listdir()
['config - 副本.txt', 'config.conf', 'config.ini']
cf.add_section(section名)
添加分组名
>>> cf.add_section("book")
cf.set(section名,option名,value)
添加指定分组下的option与其对应的value
>>> cf.set("book","name","安徒生童话")
补充:
写入的value一定是字符串类型,若要使用数值,也应该是字符型数值,否则会报错
不必担心数据类型的问题,通过get方法,会将字符串对象 转换为我们所需要的类型
通过cf.get方法,读取到的字符型数值 是字符串类型
通过cf.getint()方法会将字符型数值对象 转换为数值型对象
类似的方法还有:'getboolean', 'getfloat'
错误示范:
>>> cf.set("book","price",10)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\Python\Python35\lib\configparser.py", line 1189, in set
self._validate_value_types(option=option, value=value)
File "D:\Python\Python35\lib\configparser.py", line 1174, in _validate_value_types
raise TypeError("option values must be strings")
TypeError: option values must be strings
正确示范:
>>> cf.set("book","price","")
验证 数据类型:
cf.get(section名,option名)返回字符串对象
>>> price = cf.get("book","price")
>>> type(price)
<class 'str'>
cf.getint(section名,option名) 返值数值型对象
>>> p = cf.getint("book","price")
>>> type(p)
<class 'int'>
cf.wirte(fp)
将以上内容写入日志文件(保存到硬盘)
>>> with open("book.ini","w") as f:
cf.write(f)
确认创建新的日志文件
>>> os.listdir()
['book.ini', 'config - 副本.txt', 'config.conf', 'config.ini']

补充:
1.直接写操作会生成一个新的日志文件
with open(filename,"w") as f,filename 为当前不存在的名称,会创建一个新的日志文件
2.如修改日志,先read 日志文件,再进行写操作
with open(filename,"w") as f,filename改为要修改的日志名称即可
声明:原创文章,欢迎转载,转载请注明出处:http://www.cnblogs.com/kaerxifa/p/8688467.html
Python-通过configparser读写配置文件的更多相关文章
- python利用ConfigParser读写配置文件
ConfigParser 是Python自带的模块, 用来读写配置文件, 用法非常简单. 配置文件的格式是: []包含的叫section, section 下有option=value这样的键值 ...
- ConfigParser 读写配置文件
一.ini: 1..ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式 2.ini文件创建方法: (1)先建立一个记事本文件.(2 ...
- 记一次用python 的ConfigParser读取配置文件编码报错
记一次用python 的ConfigParser读取配置文件编码报错 ...... raise MissingSectionHeaderError(fpname, lineno, line)Confi ...
- Python(2.7.6) ConfigParser - 读写配置文件
Python 标准库的 ConfigParser 模块提供一套 API 来读取和操作配置文件. 配置文件的格式 a) 配置文件中包含一个或多个 section, 每个 section 有自己的 opt ...
- Python模块之ConfigParser - 读写配置文件
Python 标准库的 ConfigParser 模块提供一套 API 来读取和操作配置文件. 配置文件的格式 a) 配置文件中包含一个或多个 section, 每个 section 有自己的 opt ...
- Python 用configparser读写ini文件
一.configparser 简介Python用于读写ini文件的一个官方标准库.具体详见官网链接 二.configparser 部分方法介绍 方法 描述 read(filenames) filesn ...
- Python利用ConfigParser读取配置文件
http://www.2cto.com/kf/201108/100384.html #!/usr/bin/python # -*- coding:utf-8 -*- import ConfigPars ...
- 用ConfigParser模块读写配置文件——Python
对于功能较多.考虑用户体验的程序,配置功能是必不可少的,如何存储程序的各种配置? 1)可以用全局变量,不过全局变量具有易失性,程序崩溃或者关闭之后配置就没了,再者配置太多,将变量分配到哪里也是需要考虑 ...
- Python自动化测试 (二) ConfigParser模块读写配置文件
ConfigParser 是Python自带的模块, 用来读写配置文件, 用法及其简单. 直接上代码,不解释,不多说. 配置文件的格式是: []包含的叫section, section 下有op ...
随机推荐
- 清北学堂模拟赛d2t5 吃东西(eat)
题目描述一个神秘的村庄里有4家美食店.这四家店分别有A,B,C,D种不同的美食.LYK想在每一家店都吃其中一种美食.每种美食需要吃的时间可能是不一样的.现在给定第1家店A种不同的美食所需要吃的时间a1 ...
- hdu_1009_FatMouse' Trade_201310280910
FatMouse' Trade http://acm.hdu.edu.cn/showproblem.php?pid=1009 Time Limit: 2000/1000 MS (Java/Others ...
- E - Period
For each prefix of a given string S with N characters (each character has an ASCII code between 97 a ...
- sysman 账号 oracle em console的一些问题
前几天用下面的命令修改了 sysman的密码. [oracle@racnode1 ~]$ emctl setpasswd dbconsole Oracle Enterprise Manager 11g ...
- 新的HTML5语义元素
先看一个传统的HTML4的文档: <div class="header"> <h1>My Site Name</h1> <h2>My ...
- Linux C程序存储空间的逻辑布局
原文:http://blog.chinaunix.net/uid-20692625-id-3057053.html ------------------------------------------ ...
- 全栈JavaScript之路(十)学习 DocumentFragment 类型 节点
DocumentFragment 类型节点,代表一个文档片段,是一种轻量级的'文档' 对象.能够包括其他类型节点,并有能力訪问.操作当中的节点,可是在文档中没有文档标记,相当于是一个页面不可见的容器. ...
- 读书笔记-HBase in Action-第一部分 HBase fundamentals
新项目准备上HBase.HBase眼下由组里某牛负责.本着学会使用HBase的目标,先阅读下HBase in Action,一共十章组织成三部分,须要学习的内容包含HBase基本实现原理,用法,Sch ...
- hdu 4941 Magical Forest (map容器)
Magical Forest Time Limit: 24000/12000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Other ...
- luogu2152 [SDOI2009]SuperGCD
要你求两个非常大的数字的GCD. 不要想复杂,用高精度整更相减损术即可. #include <cstdio> #include <cstring> #include <a ...