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 ...
随机推荐
- Wizard's Tour
F. Wizard's Tour time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- 为什么视频流一般都用UDP
我们知道TCP 和 UDP的一个区别之一就是TCP要保证丢失的package会被再次重发,确保对方能够收到. 而在视频播放中,如果有一秒钟的信号确实,导致画面出现了一点瑕疵,那么最合适的办法是把这点瑕 ...
- PHP array_intersect_key()
定义和用法 array_intersect_key() 函数使用键名比较计算数组的交集. array_intersect_key() 返回一个数组,该数组包含了所有出现在被比较的数组中并同时出现在所有 ...
- HDU 5288
//枚举因子,查找和i最近的左右是i因子的点即可. #include <iostream> #include <cstdio> #include <algorithm&g ...
- linux 获取经过N层Nginx转发的访问来源真实IP
linux 获取经过N层Nginx转发的访问来源真实IP 学习:http://blog.csdn.net/zhenzhendeblog/article/details/49702575 学习:http ...
- android注解使用具体解释(图文)
在使用Java的SSH框架的时候,一直在感叹注解真是方便啊,关于注解的原理,大家能够參考我的还有一片文章Java注解具体解释. 近期有时间研究了android注解的使用,今天与大家分享一下. andr ...
- 基于Windows Azure 安装 SharePoint 2010简体中文语言包
在Windows Azure上安装的Windows Server默认是英文版本的,当时安装的SharePoint也是英文版的,为方便使用,决定安装中文的语言包,具体过程如下: 1. 安装 Window ...
- C++开发人脸性别识别总结
历时一个月,最终在昨天把<C++开发人脸性别识别总结>系列博客完毕了,第一篇博客发表在2015年12月29日,截止昨天2016年2月29日最后一篇完毕,去除中间一个月的寒假,正好一个月,首 ...
- 成都传智播客java就业班激情洋溢的青春篮球赛
为了缓解学员们的学习压力,也为了培养学员们的团队协作精神,5月28日下午,在班主任倪老师和王老师联手带领下,我们1406280ls" style="color:rgb(51,102 ...
- [NetworkFlow]网络流建模相关
流 网络流问题本质上是线性规划问题的应用之中的一个,线性规划问题的标准形式是给出一组等式约束和不等式约束.要求最优化一个线性函数. 在流问题中,变量以流量的形式出如今问题中,我们给出一个流网络(以有向 ...