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 ...
随机推荐
- 【ACM】hdu_2007_平方和与立方和_201307261533
平方和与立方和Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- mongodb之存储引擎
前言 存储引擎是Mongodb管理数据存储主要的组件,Mongodb支持多种存储引擎,每种存储引擎适合特定的场景 WiredTiger 特性 1. version >= 3.2版本默认存储引擎2 ...
- EasyUI 在textbox里面输入数据敲回车后查询和普通在textbox输入数据敲回车的区别
EasyUI实现回车键触发事件 $('#id').textbox('textbox').keydown(function (e) { if (e.keyCode == 13) { alert('ent ...
- Vim技巧之四大模式_普通模式
Vim技巧之四大模式_普通模式 一见不钟情的普通模式 普通模式以下的强悍操作 什么是操作符 什么是动作命令 误操作怎么办 那种操作更划算 普通模式下的神奇大招 Vim技巧之四大模式_普通模式 众所周知 ...
- UNP(一):网络编程角度下的TCP、UDP协议
此博文是学习UNP(UNIX Network Programming)后的读书笔记,供以后自己翻阅回想知识. TCP.UDP概述 在前面<计算机网络与TCP/IP>栏目下已经介绍过一些关于 ...
- UISearchBar作为inputAccessoryView时的响应链
UISearchBar对象做为一个普通的视图对象加入到视图控制器的self.view中,定义.初始化.设置delegate.然后becomeFirstResponder,最后resignFirstRe ...
- Extjs显示图片
1.首先做一个容器 xtype : 'container', // 第2行 anchor : '100%', layout : 'column', items : [{ columnWidth : 0 ...
- luogu2770 航空路线问题 网络流
题目大意: 给定一张航空图,图中顶点代表城市,边代表 2 城市间的直通航线.现要求找出一条满足下述限制条件的且途经城市最多的旅行路线.(1)从最西端城市出发,单向从西向东途经若干城市到达最东端城市,然 ...
- P2932 [USACO09JAN]地震造成的破坏Earthquake Damage 爆搜
这题怎么这么水~~~本来以为挺难的一道题,结果随便一写就过了...本来还不知道损坏的牛棚算不算,结果不明不白就过了... 题干: 农夫John的农场遭受了一场地震.有一些牛棚遭到了损坏,但幸运地,所有 ...
- 76.培训记录信息 Extjs 页面
1.培训记录信息页面jsp <%@ page language="java" import="java.util.*" pageEncoding=&quo ...