人生苦短_我用Python_configparser/yaml对配置文件读取/写入操作_010
第一,我们先开始安装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的更多相关文章
- Java学习-023-Properties 类 XML 配置文件读取及写入源代码
之前的几篇 Properties 文章已经讲述过了 Java 配置文件类 Properties 的基本用法,查看 JDK 的帮助文档时,也可看到在 Properties 类中还有两个方法 loadFr ...
- [spring源码学习]二、IOC源码——配置文件读取
一.环境准备 对于学习源码来讲,拿到一大堆的代码,脑袋里肯定是嗡嗡的,所以从代码实例进行跟踪调试未尝不是一种好的办法,此处,我们准备了一个小例子: package com.zjl; public cl ...
- VS2012中,C# 配置文件读取 + C#多个工程共享共有变量 + 整理using语句
(一) C# 配置文件读取 C#工程可以自动生成配置文件,以便整个工程可以使用设置的配置进行后续的处理工作. 1. 首先,右键工程文件-->Properties -->settings-- ...
- C 构造一个 简单配置文件读取库
前言 最近看到这篇文章, json引擎性能对比报告 http://www.oschina.net/news/61942/cpp-json-compare?utm_source=tuicool 感觉技术 ...
- C# 配置文件读取与修改
C# 配置文件读取与修改 配置文件在很多情况下都使用到, 配置文件分为两种 一种是应用程序的配置文件, 一种是web的配置文件. 两种配置文件最大的区别是web的配置文件更新之后会实时更新, 应用 ...
- java Spring使用配置文件读取jdbc.properties
Spring使用配置文件读取jdbc.properties 在beans.xml中加入两个必须的bean [html]<bean id="propertyConfigurer" ...
- C# 配置文件读取与修改(转)
C# 配置文件读取与修改 配置文件在很多情况下都使用到, 配置文件分为两种 一种是应用程序的配置文件, 一种是web的配置文件. 两种配置文件最大的区别是web的配置文件更新之后会实时更新, 应用 ...
- smarty 从配置文件读取变量
smarty变量分3种: Variables [变量] Variables assigned from PHP [从PHP分配的变量] Variables loaded from config fil ...
- Smarty从配置文件读取的变量
从配置文件读取的变量 配置文件中的变量需要通过用两个"#"或者是smarty的保留变量 $smarty.config.来调用(下节将讲到) 第二种语法在变量作为属性值并被引号括住的 ...
随机推荐
- 前端通过axios和FormData实现文件上传功能遇到的坑
使用element-ui中的upload上传组件,前端上传数据参数已经传过去了,但是后端 (java) 接不到数据 (null) [解决方案] html部分: <el-button type=& ...
- P1199三国游戏
众所周知,三国题材的游戏很多,小涵遇到了其中之一 传送 这个题显然用贪心做,但是怎么贪心? 首先我们只知道计算机的策略,但我们不知道小涵的策略.所以我们要想小涵是怎么挑的. 计算机的策略是拆掉你每次选 ...
- P1022计算器の改良
传送 这个题让你通过自己的努力,来写一个可以解一元一次方程的计算题(麻麻再也不用担心我计算错了qwq) 我们先学习一下一元一次方程的解法 step1:移项.把带有未知数的项移到方程的一边,把常数项移到 ...
- zabbix 接入钉钉机器人报警
import requests import json import sys import os headers = {'Content-Type': 'application/json;charse ...
- Mac004--Tomcat安装
Mac--Tomcat安装 一.Tomcat下载 https://tomcat.apache.org/download-80.cgi 下载Tomcat注意tomcat与jdk版本要一致.jdk1.8版 ...
- 公司C++规范学习
目录 公司C++规范学习 语法部分 风格/约定 公司C++规范学习 语法部分 class和struct关键字的选择:class表示被封装的用户自定义类型,不公开定义非静态数据成员,struct表示数据 ...
- Dubbo的详解
1.Dubbo是什么? Dubbo是一个分布式服务框架,简言之:dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质 ...
- 耗时近一个月,终于录完了VUE.JS2.0前端视频教程!
这次课录制的比较辛苦,圣诞节时原本已经快录制完成了,偶然的一次,播放了一下,感觉不满意,好几篇推倒重来,所以今天才结束. vue.js2.0是Vue.JS的最新版本,视频教程还不多,如果你看到了,学到 ...
- Spring学习笔记(14)——SpEL
是什么 Spring表达式语言全称为"Spring Expression Language",缩写为"SpEL",类似于Struts2x中使用的OGNL表达式语 ...
- Linux查看关闭进程
ps:进程的静态列表(Process status) - PID:进程号,每个进程独一无二的标识符(关闭进程需要使用) - TTY:终端所属,表明进程产生于哪一个终端,对于多用户使用的Linux服务器 ...