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读写配置文件的更多相关文章

  1. python利用ConfigParser读写配置文件

    ConfigParser 是Python自带的模块, 用来读写配置文件, 用法非常简单. 配置文件的格式是: []包含的叫section,    section 下有option=value这样的键值 ...

  2. ConfigParser 读写配置文件

    一.ini: 1..ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式 2.ini文件创建方法: (1)先建立一个记事本文件.(2 ...

  3. 记一次用python 的ConfigParser读取配置文件编码报错

    记一次用python 的ConfigParser读取配置文件编码报错 ...... raise MissingSectionHeaderError(fpname, lineno, line)Confi ...

  4. Python(2.7.6) ConfigParser - 读写配置文件

    Python 标准库的 ConfigParser 模块提供一套 API 来读取和操作配置文件. 配置文件的格式 a) 配置文件中包含一个或多个 section, 每个 section 有自己的 opt ...

  5. Python模块之ConfigParser - 读写配置文件

    Python 标准库的 ConfigParser 模块提供一套 API 来读取和操作配置文件. 配置文件的格式 a) 配置文件中包含一个或多个 section, 每个 section 有自己的 opt ...

  6. Python 用configparser读写ini文件

    一.configparser 简介Python用于读写ini文件的一个官方标准库.具体详见官网链接 二.configparser 部分方法介绍 方法 描述 read(filenames) filesn ...

  7. Python利用ConfigParser读取配置文件

    http://www.2cto.com/kf/201108/100384.html #!/usr/bin/python # -*- coding:utf-8 -*- import ConfigPars ...

  8. 用ConfigParser模块读写配置文件——Python

    对于功能较多.考虑用户体验的程序,配置功能是必不可少的,如何存储程序的各种配置? 1)可以用全局变量,不过全局变量具有易失性,程序崩溃或者关闭之后配置就没了,再者配置太多,将变量分配到哪里也是需要考虑 ...

  9. Python自动化测试 (二) ConfigParser模块读写配置文件

    ConfigParser 是Python自带的模块, 用来读写配置文件, 用法及其简单. 直接上代码,不解释,不多说. 配置文件的格式是: []包含的叫section,    section 下有op ...

随机推荐

  1. Vue2构建项目实战

    转载整理自http://blog.csdn.net/fungleo/article/details/77575077 vue构建单页应用原理 SPA 不是指水疗.是 single page web a ...

  2. maven local responsitory 手工新增jar

    1.推荐几个好的 Maven 常用仓库网址:http://mvnrepository.com/http://search.maven.org/http://repository.sonatype.or ...

  3. vs2005添加include lib文件目录

    vs2005添加include lib文件目录 http://blog.sina.com.cn/s/blog_79489160010145wb.html 1. 添加编译所需要的 lib 文件 [解决方 ...

  4. nyoj_218_Dinner_201312021434

    Dinner 时间限制:100 ms  |           内存限制:65535 KB 难度:1   描述 Little A is one member of ACM team. He had j ...

  5. DataSource是一个java ee的标准接口和servlet一样,用于数据库连接池上

    1.DataSource是一个java ee的标准接口和servlet一样,用于数据库连接池上,需要第三方来具体实现. 2.DataSource是一个java ee的标准接口和servlet一样,用于 ...

  6. MVC.Net: jqueryval错误

    当使用Mvc.net创建Create表单后,firebug Create页面会出现404 Not Found - http://192.168.3.95:7001/bundles/jqueryval& ...

  7. PHP array_intersect_assoc()

    定义和用法 array_intersect_assoc() 函数返回两个或多个数组的交集数组. 与 array_intersect() 函数 不同的是,本函数除了比较键值,还比较键名.返回的数组中元素 ...

  8. Atitit.一个cms有多少少扩展点,多少api&#160;wordpress&#160;&#160;cms有多少api。。扩展点

    Atitit.一个cms有多少少扩展点,多少api wordpress  cms有多少api. . 扩展点 1. Api分类 WordPress APIs 1 1.1. 1 函数分类 2 1.2. 函 ...

  9. poj3296--Rinse(三分)

    题目链接:点击打开链接 题目大意:有一个酒桶容量为Vc.里面还有Vw的酒,如今用Vb的水去刷酒桶,每次酒桶的内壁上会留下Vr的液体,最多能够刷k次,问怎么样刷酒桶.能够让酒桶里面的就最少. 假设Vb+ ...

  10. jQuery - 制作非缘勿扰页面特效

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...