常用模块之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)
人生如逆旅,我亦是行人.....