Day 4-7 -configparser模块
此模块用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser。
常用方法:
import configparser
conf = configparser.ConfigParser() # 先生成一个对象.
conf.read("conf.ini") # 读取配置文件
print(conf.sections()) # 输出配置文件里的配置项,注意,获取不到default.因为每个配置文件里都有一个default.所以这里给省略略
list = list(conf["bitbucket.org"].keys()) #其实conf["bitbucket.org"] 就是一个字典.可以取里面的值.可是为什么还有default里的值? print(list)
['user', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11'] print(conf["bitbucket.org"]["user"]) # 获取"user"key的value
a = conf["bitbucket.org"]["user"]
print(a) # hg
conf["bitbucket.org"]["user"] = "jack" # 修改user的值
b = conf["bitbucket.org"].get("user")
print(b) #jack # 我们获取一下conf["bitbucket.org"]的key
for k in conf["bitbucket.org"]:
print(k) '''user
serveraliveinterval
compression
compressionlevel
forwardx11 ''' # 输出了好多key,但是conf["bitucket.org]里只有一个key啊.default的作用就是默认每个节点里都会有default的配置. if "ssss" in conf["bitbucket.org"]: # 判断一个子项是否在conf["bitbucket.org"]里面
print("in") else:
print("not in") print(conf.options("group1")) # 获取group1下面的key,也就是子项的名字 # 添加新项
conf.add_section("group3")
conf["group3"]["user"] = "Nick"
conf["group3"]["age"] = "" # 注意,写入数字的时候必须用引号引起来,不然会认为是一个int类型,无法写入.
conf.write(open("conf_test.ini", "w")) #删除
conf.remove_option("group1","k1") # 删除子项下的值
conf.write(open("1111.ini", "w")) conf.remove_section("group1") # 删除一个子项
conf.write(open("2222.ini", "w"))
作业:
[DEFAULT] [client]
port = 3306
socket = /data/mysql_3306/mysql.sock [mysqld]
explicit_defaults_for_timestamp = true
port = 3306
socket = /data/mysql_3306/mysql.sock
back_log = 80
basedir = /usr/local/mysql
tmpdir = /tmp
datadir = /data/mysql_3306
default-time-zone = '+8:00' """
1.修改时区 default-time-zone = '+8:00' 为 校准的全球时间 +00:00
2.删除 explicit_defaults_for_timestamp = true
3.为DEFAULT增加一条 character-set-server = utf8 """
import configparser
conf = configparser.ConfigParser() #生成一个conf对象
conf.read("conf.ini") # 读取conf.ini的内容
conf.remove_option("mysqld", "explicit_defaults_for_timestamp") # 删除
#修改
conf["mysqld]["default-time-zone"] = "+00:00" # 增加
conf["DEFAULT"]["character-set-server"] = "utf8"
作业答案
补充:
for k,v in (conf["mysqld"].items()): # 取所有的k,v
print(k,":", v) """输出:
port : 3306
socket : /data/mysql_3306/mysql.sock
back_log : 80
basedir : /usr/local/mysql
tmpdir : /tmp
datadir : /data/mysql_3306
default-time-zone : +00:00
character-set-server : utf8 """
Day 4-7 -configparser模块的更多相关文章
- configparser模块
configparser模块 echo $@ $# $? $* configparse用于处理特定格式的文件,其本质上利用open来操作文件(比如配置文件) **********配置文件***** ...
- 用ConfigParser模块读写配置文件——Python
对于功能较多.考虑用户体验的程序,配置功能是必不可少的,如何存储程序的各种配置? 1)可以用全局变量,不过全局变量具有易失性,程序崩溃或者关闭之后配置就没了,再者配置太多,将变量分配到哪里也是需要考虑 ...
- Python自动化测试 -ConfigParser模块读写配置文件
C#之所以容易让人感兴趣,是因为安装完Visual Studio, 就可以很简单的直接写程序了,不需要做如何配置. 对新手来说,这是非常好的“初体验”, 会激发初学者的自信和兴趣. 而有些语言的开发环 ...
- Python学习笔记——基础篇【第六周】——PyYAML & configparser模块
PyYAML模块 Python也可以很容易的处理ymal文档格式,只不过需要安装一个模块,参考文档:http://pyyaml.org/wiki/PyYAMLDocumentation 常用模块之Co ...
- Python之xml文档及配置文件处理(ElementTree模块、ConfigParser模块)
本节内容 前言 XML处理模块 ConfigParser/configparser模块 总结 一.前言 我们在<中我们描述了Python数据持久化的大体概念和基本处理方式,通过这些知识点我们已经 ...
- 小白的Python之路 day5 configparser模块的特点和用法
configparser模块的特点和用法 一.概述 主要用于生成和修改常见配置文件,当前模块的名称在 python 3.x 版本中变更为 configparser.在python2.x版本中为Conf ...
- configparser模块的常见用法
configparser模块用于生成与windows.ini文件类似格式的配置文件,可以包含一节或多节(section),每个节可以有一个或多个参数(键=值) 在学习这个模块之前,先来看一个经常见到的 ...
- day20 hashlib、hmac、subprocess、configparser模块
hashlib模块:加密 import hashlib# 基本使用cipher = hashlib.md5('需要加密的数据的二进制形式'.encode('utf-8'))print(cipher.h ...
- python封装configparser模块获取conf.ini值(优化版)
昨天晚上封装了configparser模块,是根据keyname获取的value.python封装configparser模块获取conf.ini值 我原本是想通过config.ini文件中的sect ...
- python封装configparser模块获取conf.ini值
configparser模块是python自带的从文件中获取固定格式参数的模块,因为是python只带的,大家用的应该很多,我觉得这个参数模块比较灵活,添加参数.修改参数.读取参数等都有对应的参数供用 ...
随机推荐
- Spring 的application.properties项目配置与注解
一.项目结构介绍 如上图所示,Spring Boot的基础结构共三个文件: src/main/java 程序开发以及主程序入口 src/main/resources 配置文件 src/test/ja ...
- 「2017 山东一轮集训 Day5」苹果树
「2017 山东一轮集训 Day5」苹果树 \(n\leq 40\) 折半搜索+矩阵树定理. 没有想到折半搜索. 首先我们先枚举\(k\)个好点,我们让它们一定没有用的.要满足这个条件就要使它只能和坏 ...
- java.util.concurrent包学习笔记(一)Executor框架
类图: 其实从类图我们能发现concurrent包(除去java.util.concurrent.atomic 和 java.util.concurrent.locks)中的内容并没有特别多,大概分为 ...
- UVA11584-Partitioning by Palindromes(动态规划基础)
Problem UVA11584-Partitioning by Palindromes Accept: 1326 Submit: 7151Time Limit: 3000 mSec Problem ...
- P1515 旅行(简单搜索)
非常简单的搜索. 思路:先排序,然后,搜索枚举的时候满足A < 两个旅店 < B,然后,搜索就行了. #include<iostream> #include<algori ...
- Linux 创建静态库(.a)和动态库(.so)
0. 回顾一下 gcc 选项 ============================================== -E : 仅做预处理,例如去注释,宏展开,include 展开等 -S : ...
- 不可变对象和Biulder模式(面试问题)
String就是一个典型的不可变对象.外界的操作不能改变它,如果尝试改变都会返回一个新的String对象. 具体实现起来就是把属性全部变成private 和 final的,这个类也是final的不可继 ...
- oracle 创建表空间TABLESPACE
题外话: 在oracle中,我们的数据库用户都有一个默认表空间归属,当在该用户下创建表或其他对象时默认会将其归属在默认表空间: 不排除后期修改了用户默认表空间的情况存在,此后新加入的对象默认会放置在新 ...
- SQL Server中UPDATE和DELETE语句结合INNER/LEFT/RIGHT/FULL JOIN的用法
在SQL Server中,UPDATE和DELETE语句是可以结合INNER/LEFT/RIGHT/FULL JOIN来使用的. 我们首先在数据库中新建两张表: [T_A] CREATE TABLE ...
- 【原创】惊!史上最全的select加锁分析(Mysql)
引言 大家在面试中有没遇到面试官问你下面六句Sql的区别呢 select * from table where id = ? select * from table where id < ? s ...