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 ...
随机推荐
- Codeforces Round #306 (Div. 2) D
D. Regular Bridge time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- AVPlayer的使用,带缓冲
#import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewCont ...
- http get请求获取server返回的应答数据
libcurl库中的參数CURLOPT_WRITEFUNCTION所设置的回调函数应该是这种: size_t fun_cb( char *ptr, size_t size, size_t nmemb, ...
- WCF学习笔记——配置服务引用
WCF传过来的东西要序列化. 比如,在WCF服务中,象这么个方法 public IEnumerable<UserItem> GetUserList() 默认情况下,在客户端会调用,是这样: ...
- luogu1052 过河
题目大意 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数 ...
- bzoj4950: [Wf2017]Mission Improbable
跟着靖靖做题%%%%% 这题一看就觉得和之前的某场模拟赛的一道题很像,找假如某行某列的最大值一样的就可以只堆一个,跑匈牙利就行 一开始以为箱子不能移动-_-! 然后有个坑,大家都知道当这个位置有箱子就 ...
- dynamic关键字的使用
https://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonConvert.htm 在使用DeserializeObject函数进行 ...
- SVM最通俗的解读
摘自:https://www.zhihu.com/question/21094489/answer/86273196 什么是SVM? 当然首先看一下wiki. Support Vector Machi ...
- .sh文件 编写格式
http://blog.sina.com.cn/s/blog_54f82cc201010hfz.html 介绍: 1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号# ...
- Pie(二分)
http://poj.org/problem?id=3122 题意:将n个圆柱体的不同口味的pie分给m个人,要求每个人分得的pie必须体积相同,且来自于一块pie(即:只分得一种口味的pie),求最 ...