常用模块之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 ...
随机推荐
- Git本地分支与远程分支关联
当clone完版本库,切换到开发分支后,使用git pull -r 拉取并合并分支之后会出现一下提示: $ git pull -rFrom ssh://192.168.1.226:29418/etha ...
- AKOJ-2037-出行方案
链接:https://oj.ahstu.cc/JudgeOnline/problem.php?id=2037 题意: 安科的夏天真是不一般的热,避免炎热,伍学长因此想为自己规划一个校园出行方案,使得从 ...
- 洛谷P2599||bzoj1413 [ZJOI2009]取石子游戏
bzoj1413 洛谷P2599 根本不会啊... 看题解吧 #include<cstdio> #include<algorithm> #include<cstring& ...
- 使用request实现手工输入验证码登录
我们的目标网站是这个http://awehome.com.cn,登录页面是这个http://awehome.com.cn/tenant/login import requests import jso ...
- [已读]JavaScript语言精髓与编程实践
推荐第二章的内容,关于表达式和运算符的内容很独到.
- Mysql优化配置
Mysql配置优化 一.环境介绍 Mysql版本:5.5.27 二.优化内容 字段 介绍 推荐值 skip-locking 避免MySQL的外部锁定,减少出错几率增强稳定性 back_log MySQ ...
- 常用的 JavaScript 简写方法
1.三元操作符 当想写 if...else 语句时,使用三元操作符来代替. const x = 20; let answer; if (x > 10) { answer = 'is gre ...
- [BZOJ2982]combination Lucas定理
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2982 $C(N,M)\% P = C(N\% P,M\% P) * C(N/P,M/P)\ ...
- Eclipse-运行符-数据类型转换-环境变量配置
1.能够使用Eclipse快捷键 ctrl + / 单行注释:再按一次则取消: ctrl + shift + / 多行注释: ctrl + shift + \ 取消多行注释: ctrl + ...
- Mybatis generator自动生成代码包括实体,dao,xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...