常用模块之configpaser与shutil
configparser模块
定义:configparser翻译为配置解析,即它是用来解析配置文件的
配置文件:用于编写程序的配置信息的文件
配置文件编写格式
配置文件中只允许出现两种类型的数据
section 分区(标题) 方括号中是分区的名称 例如:[ATM]
option 选项(key) 名称=值
注意:
不能出现重复的分区名
同一个分区不能有相同的选项名
值可以是任意类型 且字符串不需要引号
用法
展示配置格式
#配置信息 test.cfg
[section1]
k1 = v1
k2:v2
name = jason
password = 123
[section2]
k1 = v1
k2:v2
name = jason
password = 123
configparser用法流程 import configparser
# 获取解析对象
config = configparser.ConfigParser()
# 读取某个配置文件
config.read('test.cfg', encoding='utf-8')
# 下面可以对配置文件进行增删查改
"""
查看
"""
# 查看所有标题 (以列表形式存储)
res = config.sections() # ['section1', 'section2']
print(res)
# 查看标题下所有的key=value的key
options = config.options('section1')
print(options) # ['k1', 'k2', 'name', 'password']
# 查看标题section1下所有key=value的(key,value)格式
item_list = config.items('section1')
print(item_list) # [('k1', 'v1'), ('k2', 'v2'), ('user', 'jason'), ('password', '123')]
# 查看标题section1下user的值=>字符串格式
val = config.get('section1', 'name')
print(val) # jason
# 查看标题section1下key的值=>整数格式(内进行了一个类型转换,下同)
val1 = config.getint('section1', 'key')
print(val1) # 整型数字
# 查看标题section1下key的值=>布尔值格式
val2 = config.getboolean('section1', 'key')
print(val2) # True/False
# 查看标题section1下key的值=>浮点型格式
val3 = config.getfloat('section1', 'key')
print(val3) # float
"""
删除.remove
"""
# 删除整个标题section2
config.remove_section('section2')
# 删除标题section1下的某个k1
config.remove_option('section1', 'k1')
"""
增加.add
"""
# 添加一个标题(分区)
config.add_section('section3')
"""
修改(可看作增加,存在则为修改)
"""
# 在标题section1下添加name=James,age=34的配置
config.set('section1', 'name', 'James') # 如果存在则覆盖原来的值
config.set('section1', 'age', 18) # 报错,必须是字符串
"""
# 对于增、删、改。更改过后需要再将修改后的内容写入文件
才算完成最终的修改。
"""
config.write(open('test.cfg', 'w'))注意:作为配置文件,最常用的操作就是读取,很少会做修改
总结:
read读取配置文件
add_section添加分区
set 如果没有这个选项则添加
remove_section 删除分区
remove_option 删除选项
# 请使用配置文件记录登录用户名和密码 下次登录时直接读取配置文件
# 在进行登录前 先判断是否存在用户名和密码在配置文件中
# 如果有则读取配置文件并登录
# 如果没有则正常输入用户名和密码 登录成功时将用户名和密码写入配置文件
shutil模块
该模块提供了丰富的文件操作功能,压缩,解压缩,获取文件信息等
相应功能使用
shutil.copyfileobj 拷贝文件 提供两个文件对象 长度表示缓冲区大小
shutil.copyfile(src, dst) 拷贝文件 提供两个文件路径
shutil.copymode() 拷贝文件权限 提供两个文件路径
shutil.copystat(src, dst) 拷贝文件状态信息 最后访问 最后修改 权限 提供两个文件路径
shutil.copy(src, dst) 拷贝文件和权限 提供两个文件路径
shutil.copy2(src, dst) 拷贝文件和状态信息 提供两个文件路径
shutil.ignore_patterns("mp3","*.py")
shutil.copytree(src, dst, symlinks=False, ignore=None) 拷贝目录
symlinks默认False将软连接拷贝为硬链接 否则拷贝为软连接
shutil.rmtree 删除目录 可以设置忽略文件
shutil.move(src, dst) 移动目录和文件
压缩与解压缩测试
import shutil
#压缩, 文件名 格式 需要压缩的文件所在文件夹
shutil.make_archive("压缩测试","zip",path)
#解压缩 #压缩, 文件名 解压后的文件存放目录
shutil.unpack_archive("压缩测试.zip",path)
常用模块之configpaser与shutil的更多相关文章
- Python 入门基础15 --shutil、shelve、log常用模块2、项目结构
今日内容: 一.常用模块 2019.04.10 更新 1.time:时间 2.calendar:日历 3.datatime:可以运算的时间 4.sys:系统 5.os:操作系统 6.os.path:系 ...
- 模块、包及常用模块(time/random/os/sys/shutil)
一.模块 模块的本质就是一个.py 文件. 导入和调用模块: import module from module import xx from module.xx.xx import xx as re ...
- python常用模块之shutil模块
python常用模块之shutil模块 shutil模块,高级的文件.文件夹.压缩包处理模块 1.shutil.copyfile(src,des[,length]):将文件内容拷贝到另一个文件 In ...
- Python3基础(5)常用模块:time、datetime、random、os、sys、shutil、shelve、xml处理、ConfigParser、hashlib、re
---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1 ...
- 常用模块 - shutil模块
一.简介 shutil – Utility functions for copying and archiving files and directory trees.(用于复制和存档文件和目录树的实 ...
- 进击的Python【第五章】:Python的高级应用(二)常用模块
Python的高级应用(二)常用模块学习 本章学习要点: Python模块的定义 time &datetime模块 random模块 os模块 sys模块 shutil模块 ConfigPar ...
- python学习笔记之常用模块(第五天)
参考老师的博客: 金角:http://www.cnblogs.com/alex3714/articles/5161349.html 银角:http://www.cnblogs.com/wupeiqi/ ...
- Python_Day6_Pyhotn常用模块学习
本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...
- Python 之路 Day5 - 常用模块学习
本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...
随机推荐
- #13:人十我一Orz——6
水题放送,写得依旧丑: #include <cstdio> #include <cstring> #include <cmath> #include <alg ...
- ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) B
Sherlock has a new girlfriend (so unlike him!). Valentine's day is coming and he wants to gift her s ...
- eclipse导入mavn工程报Failure to transfer org.apache.maven.plugins:maven-resources-plugin:pom:2.6 的解决办法
详细报错: Failure to transfer org.apache.maven.plugins:maven-resources-plugin:pom:2.6 from http://10.74. ...
- 接口测试03 - Python HTTP库requests
概述: 整理一些requests的相关知识,及如何使用requests进行接口测试. requests号称:是唯一的一个非转基因的Python HTTP库,人类可以安全享用. 安装: 先看下怎么安装r ...
- opencart 安装
1:安装 php5 apache2 mysql 2:下载opencart wget https://github.com/opencart/opencart/archive/master.zi ...
- 系统讲解一下,Dao,Entity,Servlet,Action各自有什么东西-Java/Web开发
dao 主要是一些接口,里面定义了一些用于增删改查的方法名 daoImpl 就是对dao的具体实现 Service 同上,也是一些接口,主要是用来调用dao层的一些方法,所以这里定义的方法一般都定义好 ...
- 安卓4.4不支持touchend事件解决办法
最近的项目要求兼容到OPPO A31这款手机,这款手机是安卓4.4,调试时遇到了touch手指不能滑动页面切换的问题,最终解决通过在touchstart事件里面加上一个 event.preventDe ...
- 前端开发神器 - Brackets
做了几年的 .Net 项目开发,后来公司转 Java 语言开发,Java 做了还没一年,公司准备前后端分离开发,而我被分到前端! Brackets是一款基于web(html+css+js)开发的web ...
- mvc工作总结
MVC的页面跳转方式(放在一般类): filterContext.Result = new RedirectResult("controller/action"); filterC ...
- 读懂 Deployment YAML【转】
既然要用 YAML 配置文件部署应用,现在就很有必要了解一下 Deployment 的配置格式,其他 Controller(比如 DaemonSet)非常类似. 还是以 nginx-deploymen ...