常用模块之configpaser与shutil
2024-08-30 05:49:26
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)
最新文章
- window.print() 去掉页眉页脚及打印链接【转载】
- Task:取消异步计算限制操作 &; 捕获任务中的异常
- JavaScript 设计模式之工厂模式
- 29. Populating Next Right Pointers in Each Node &;&; Populating Next Right Pointers in Each Node II
- Unity3D脚印6——模型动画
- Brush Mode --- Nyoj 737 分类: Brush Mode 2014-03-25 08:10 202人阅读 评论(0) 收藏
- 宏HASH_INSERT
- eclipse怎么切换SVN的用户
- 边走边学Nodejs (基础入门篇)
- 为什么字符串会有length属性-JS中包装对象
- Activiti第三篇【连接、排他网关、指定任务处理人、组任务】
- NOIP2017-普及组复赛第2题 题解
- [MySQL] timestamp和datetime的区别和大坑
- 输入正整数n,求各位数字和
- 获取经纬度之间两点间真实距离(适用于GoogleMap,BaiduMap,Amap等)
- 网页录像录音功能的实现之MediaRecorder的使用
- 分辨率,PPi,DPI,DPR,物理像素,逻辑像素
- RedHat7安装vmware虚拟机启动报错
- Excel上传找到错误数据类型
- java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1