常用模块之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 ...
随机推荐
- 关于presentViewController 后调用pushViewController
错误代码: LoginViewController *loginVc = [[LoginViewController alloc] int]; [self presentViewController ...
- Qt 2D绘图之三:绘制文字、路径、图像、复合模式
一.绘制文字 除了绘制图形以外,还可以使用QPainter::darwText()函数来绘制文字,也可以使用QPainter::setFont()设置文字所使用的字体,使用QPainter::font ...
- 洛谷 P1053 篝火晚会
https://www.luogu.org/problemnew/show/P1053 错误记录:判-1的时候出了些问题(比如只判了图是否连通):数组没清空 #include<cstdio> ...
- [已读]JavaScript DOM编程艺术
看到过很多人将它作为推荐入门书籍,当时我刚看完ppk和javascript精粹,于是看到这本就觉得很一般了.怎么说,它适合基础.
- Apache的多处理模块MPM
本博文主要参数 Apache 2.2文档以及Apache模块开发指南 Apache的整个运行可以分为两个阶段:启动阶段和运行阶段. 在启动阶段时,它以ROOT特权来启动,进行解析配置文件(一般就是ht ...
- Enum 枚举类
目录 Enum 枚举类 基础 定义与用途 基本方法 示例 进阶 实现原理 枚举与Class对象 自定义枚举类和构造方法及toString() Enum中使用抽象方法来实现枚举实例的多态性 Enum与接 ...
- 阻塞 io 非阻塞 io 学习笔记
阻塞 io 非阻塞 io 学习笔记
- 如何尽量避免引用jQuery
Introduction 正如jQuery所宣称的一样,Write Less, Do More.很多时候我们喜欢用它来解决问题.但增加一个库必然意味着更大的网络负担,意味着更高的页面初始载入时间.并且 ...
- Java基础教程(25)--I/O
一.I/O流 I/O流表示输入源或输出目标.流可以表示许多不同类型的源和目标,例如磁盘文件.设备.其他程序等. 流支持许多不同类型的数据,包括字节.原始数据类型.字符和对象等.有些流只传递数据 ...
- 微信小程序---图片上传+服务端接受
原文地址:http://blog.csdn.net/sk719887916/article/details/54312573 微信小程序,图片上传,应用地方-修改用户信息的头像. 详细代码: 小程序的 ...