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. Wizard's Tour

    F. Wizard's Tour time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  2. 为什么视频流一般都用UDP

    我们知道TCP 和 UDP的一个区别之一就是TCP要保证丢失的package会被再次重发,确保对方能够收到. 而在视频播放中,如果有一秒钟的信号确实,导致画面出现了一点瑕疵,那么最合适的办法是把这点瑕 ...

  3. PHP array_intersect_key()

    定义和用法 array_intersect_key() 函数使用键名比较计算数组的交集. array_intersect_key() 返回一个数组,该数组包含了所有出现在被比较的数组中并同时出现在所有 ...

  4. HDU 5288

    //枚举因子,查找和i最近的左右是i因子的点即可. #include <iostream> #include <cstdio> #include <algorithm&g ...

  5. linux 获取经过N层Nginx转发的访问来源真实IP

    linux 获取经过N层Nginx转发的访问来源真实IP 学习:http://blog.csdn.net/zhenzhendeblog/article/details/49702575 学习:http ...

  6. android注解使用具体解释(图文)

    在使用Java的SSH框架的时候,一直在感叹注解真是方便啊,关于注解的原理,大家能够參考我的还有一片文章Java注解具体解释. 近期有时间研究了android注解的使用,今天与大家分享一下. andr ...

  7. 基于Windows Azure 安装 SharePoint 2010简体中文语言包

    在Windows Azure上安装的Windows Server默认是英文版本的,当时安装的SharePoint也是英文版的,为方便使用,决定安装中文的语言包,具体过程如下: 1. 安装 Window ...

  8. C++开发人脸性别识别总结

    历时一个月,最终在昨天把<C++开发人脸性别识别总结>系列博客完毕了,第一篇博客发表在2015年12月29日,截止昨天2016年2月29日最后一篇完毕,去除中间一个月的寒假,正好一个月,首 ...

  9. 成都传智播客java就业班激情洋溢的青春篮球赛

    为了缓解学员们的学习压力,也为了培养学员们的团队协作精神,5月28日下午,在班主任倪老师和王老师联手带领下,我们1406280ls" style="color:rgb(51,102 ...

  10. [NetworkFlow]网络流建模相关

    流 网络流问题本质上是线性规划问题的应用之中的一个,线性规划问题的标准形式是给出一组等式约束和不等式约束.要求最优化一个线性函数. 在流问题中,变量以流量的形式出如今问题中,我们给出一个流网络(以有向 ...