第一,我们先开始安装yaml库,configparser是自带库,yaml库是针对读取yml文件,configparser现阶段我只用于读取conf文件

首先:
1)对象文件为:data.yml,下面的data.yml文件的内容:
data: [1, 'System_GetAreaList_success', 'post', 'http://10.20.250.80:8081/system/unauth/address/getAreaList.do', "{'cityId':'110100'}", 110100]
demo_data: [
['test_case_001', 'success', 'get', 'http://v.juhe.cn/laohuangli/d', "{'data':2018-09-11,\n'key':'5a65de1ce7394ba6afe185cf5873415c'}", 'successed'],
['test_case_002', 'success', 'post', 'http://v.juhe.cn/laohuangli/d', "{'data':2018-09-12,\n'key':'5a65de1ce7394ba6afe185cf5873415c'}", 'successed'],
['test_case_003', 'key_error', 'post', 'http://v.juhe.cn/laohuangli/d', "{'data':2018-09-12,\n'key':'5a65de1ce7394ba6afe185cdsa3416c'}", '错误的请求KEY!!'],
['test_case_004', 'data_null', 'post', 'http://v.juhe.cn/laohuangli/d', "{'data':'',\n'key':'5a65de1ce7394ba6afe185cf5873417c'}", '错误的请求KEY!!'],
['test_case_005', 'key_null', 'post', 'http://v.juhe.cn/laohuangli/d', "{'data':2018-09-12,\n'key':''}", '错误的请求KEY!!']
]
以下的针对读取data.yml的code:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/6/24 10:49
# @Author : Mr.chen
# @Site :
# @File : getData.py
# @Software: PyCharm
# @Email : 794281961@qq.com
import yaml def get_conf_data(file="./data.yml"): # 传进配置文件的路径
f_data = open(file, 'r', encoding='utf-8') # utf-8编码只读方式打开文件
conf_data = yaml.load(f_data) # 读取对象文件
f_data.close() # 关闭对象文件
print(conf_data['data']) get_conf_data()

2)对象文件为conf文件时,例如下面是"db.conf"文件时,内容为:

[DATABASE]
config_env = {
'host': '118.126.108.173', # :主机
'user': 'python', # :用户名
'password': 'python5666', # :密码
'port': 3306, # :端口
'database': 'test_summer' # :库
}
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/6/23 0:06
# @Author : Mr.chen
# @Site :
# @File : class_06_21_getConfig_002.py
# @Software: PyCharm
# @Email : 794281961@qq.com import configparser # 专门读取配置文件的类 class ConfigOperation:
def Config_read(self, file_name: object, section_: object, option_: object) -> object:
cf = configparser.ConfigParser()
cf.read(file_name) # 打开配置文件
config = cf.get(section_, option_) # section==[标签名] option==Key
return eval(config) def Config_write(self): # 写配置文件
cf = configparser.ConfigParser()
cf.read("db.conf")
cf.add_section('a_new_sectioneee1') # 添加新的域
cf.set('a_new_sectioneee1', 'new_key', 'new_value') # 在新的域下面,set相关的section/option
with open("db.conf", "w+") as f:
cf.write(f) if __name__ == '__main__':
t = ConfigOperation()
t.Config_write()
print(t.Config_read('db.conf', 'DATABASE', 'config_env')) # 我们需要的config_env是一个dict,但是从conf文件读出来的是str类型,所以需要用eval转换
Ps:yml文件的读取速度比较快,所以建议一些经常读写的数据建议放在yml文件中去,例如sql,配置信息,测试数据类似的数据。

人生苦短_我用Python_configparser/yaml对配置文件读取/写入操作_010的更多相关文章

  1. Java学习-023-Properties 类 XML 配置文件读取及写入源代码

    之前的几篇 Properties 文章已经讲述过了 Java 配置文件类 Properties 的基本用法,查看 JDK 的帮助文档时,也可看到在 Properties 类中还有两个方法 loadFr ...

  2. [spring源码学习]二、IOC源码——配置文件读取

    一.环境准备 对于学习源码来讲,拿到一大堆的代码,脑袋里肯定是嗡嗡的,所以从代码实例进行跟踪调试未尝不是一种好的办法,此处,我们准备了一个小例子: package com.zjl; public cl ...

  3. VS2012中,C# 配置文件读取 + C#多个工程共享共有变量 + 整理using语句

    (一) C# 配置文件读取 C#工程可以自动生成配置文件,以便整个工程可以使用设置的配置进行后续的处理工作. 1. 首先,右键工程文件-->Properties -->settings-- ...

  4. C 构造一个 简单配置文件读取库

    前言 最近看到这篇文章, json引擎性能对比报告 http://www.oschina.net/news/61942/cpp-json-compare?utm_source=tuicool 感觉技术 ...

  5. C# 配置文件读取与修改

    C# 配置文件读取与修改   配置文件在很多情况下都使用到, 配置文件分为两种 一种是应用程序的配置文件, 一种是web的配置文件. 两种配置文件最大的区别是web的配置文件更新之后会实时更新, 应用 ...

  6. java Spring使用配置文件读取jdbc.properties

    Spring使用配置文件读取jdbc.properties 在beans.xml中加入两个必须的bean [html]<bean id="propertyConfigurer" ...

  7. C# 配置文件读取与修改(转)

    C# 配置文件读取与修改   配置文件在很多情况下都使用到, 配置文件分为两种 一种是应用程序的配置文件, 一种是web的配置文件. 两种配置文件最大的区别是web的配置文件更新之后会实时更新, 应用 ...

  8. smarty 从配置文件读取变量

    smarty变量分3种: Variables [变量] Variables assigned from PHP [从PHP分配的变量] Variables loaded from config fil ...

  9. Smarty从配置文件读取的变量

    从配置文件读取的变量 配置文件中的变量需要通过用两个"#"或者是smarty的保留变量 $smarty.config.来调用(下节将讲到) 第二种语法在变量作为属性值并被引号括住的 ...

随机推荐

  1. Oracle DB 查看预警日志

    “Database(数据库)”主页>“Related Links相关链接)”区域> “Alert Log Content (预警日志内容)” 查看预警日志每个数据库都有一个alert_&l ...

  2. 2019 年百度之星·程序设计大赛 - 复赛 Diversity (树形DP)

    题目:https://vjudge.net/contest/325352#problem/A 题意:给你一棵树,每个点给一个区间,可以选区间里面任何一个数,然后问怎么安排得到最大边两点之间的差值和,求 ...

  3. JS replace方法

    var str = '1abc2defg3hijk'; str.replace(/\d/g,function(a,b,c,d){ console.log("a:",a);// 匹配 ...

  4. if isinstance(obj, int):

    http://legacy.python.org/dev/peps/pep-0008/ Object type comparisons should always use isinstance() i ...

  5. java sftp判断目录是否存在

    java sftp判断目录是否存在 public boolean isExistDir(String path,ChannelSftp sftp){ boolean isExist=false; tr ...

  6. Selenium WebDriver UI对象库

    UI对象库:使用配置文件存储测试页面上的定位和定位表达式,做到定位数据和程序的分离. 第一步:实现工具类Object工具类,供测试程序调用. /** * 使用配置文件存储测试页面上的定位和定位表达式, ...

  7. 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控

    一.安装配置InfluxDB InfluxDB是GO语言开发的一个开源分布式时序数据库,非常适合存储指标.事件.分析等数据.有人做过mysql和influxDB对比,存储1000万条数据mysql要7 ...

  8. CET-6 分频周计划生词筛选(Week 3)

    点我阅读 Week 3 2016.09.11 p113 manipulate + propel p114 expedition + deficit p115 all p116 envisage p11 ...

  9. 校内模拟赛 : Rima —— 字典树+树形DP

    首先说一下,对一个刚学Trie树的蒟蒻来说(就是我),这道题是一道好题.Trie树比较简单,所以就不详细写了. Rima 内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传 ...

  10. 《JAVA设计模式》之原型模式(Prototype)

    在阎宏博士的<JAVA与模式>一书中开头是这样描述原型(Prototype)模式的: 原型模式属于对象的创建模式.通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办 ...