常用模块之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 ...
随机推荐
- 多线程:『GCD』详尽总结
本文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法.这大概是史上最详细.清晰的关于 GCD 的详细讲解+总结的文章了.通过本文,您将了解到:1. GCD 简介2. GCD 任务和队列3. ...
- B.选点
链接:https://ac.nowcoder.com/acm/contest/368/B 题意: 有一棵n个节点的二叉树,1为根节点,每个节点有一个值wi.现在要选出尽量多的点. 对于任意一棵子树,都 ...
- layer窗口抖动
详细学习网址 http://www.layui.com/doc/modules/layer.html#use ..................................... //使用方法 ...
- crontab 在unix 没有执行。
Quote: 引用 2 楼 jdwq33 的回复: Quote: 引用 1 楼 mp777323 的回复: 03 * * * * sh /opt/pro_some.sh 我试过了,这样也不行,难道是我 ...
- shell脚本由基础变量及特殊变量($@、$*、$#等)到实战。
一.shell脚本建立: shell脚本通常是在编辑器(如vi/vim)中编写,也可以在命令行中直接执行: 1.脚本开头: 规范的脚本第一行需要指出有哪个程序(解释器)来执行脚本中的内容,在L ...
- DDX和DDV——控件与变量之间值的传递
DoDataExchange由框架调用,作用是交互并且验证对话框数据,主要由(DDX) 和 (DDV)宏实现. 永远不要直接调用这个函数,而是通过UpdateData(TRUE/FALSE)实现控件与 ...
- 小程序 显示Toobar
要实现的效果 在 下面app.json 中加下列代码 "tabBar": { "color": "#7A7E83", "se ...
- bootstrap 滚动监听 标签页 和 工具提示
标签 <div class="container"> <h4>Tabs</h4> <ul id="myTab ...
- CF1061B Views Matter
思路: 贪心. 实现: #include <bits/stdc++.h> using namespace std; ]; int main() { int n, m; while (cin ...
- 分析(ExtractTransformLoad)与挖掘(DataMine)有何区别 ?
首先,介绍一下ETL 和 DM: ETL/Extraction-Transformation-Loading——用于完成DB到DW的数据转存,它将DB中的某一个时间点的状态,“抽取”出来,根据 ...