configparser模块

  • 定义:configparser翻译为配置解析,即它是用来解析配置文件的

    配置文件:用于编写程序的配置信息的文件

    • 配置文件编写格式

      • 配置文件中只允许出现两种类型的数据

        1. section 分区(标题) 方括号中是分区的名称 例如:[ATM]

        2. 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'))

    注意:作为配置文件,最常用的操作就是读取,很少会做修改

  • 总结:

    1. read读取配置文件

    2. add_section添加分区

    3. set 如果没有这个选项则添加

    4. remove_section 删除分区

    5. 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的更多相关文章

  1. Python 入门基础15 --shutil、shelve、log常用模块2、项目结构

    今日内容: 一.常用模块 2019.04.10 更新 1.time:时间 2.calendar:日历 3.datatime:可以运算的时间 4.sys:系统 5.os:操作系统 6.os.path:系 ...

  2. 模块、包及常用模块(time/random/os/sys/shutil)

    一.模块 模块的本质就是一个.py 文件. 导入和调用模块: import module from module import xx from module.xx.xx import xx as re ...

  3. python常用模块之shutil模块

    python常用模块之shutil模块 shutil模块,高级的文件.文件夹.压缩包处理模块 1.shutil.copyfile(src,des[,length]):将文件内容拷贝到另一个文件 In ...

  4. Python3基础(5)常用模块:time、datetime、random、os、sys、shutil、shelve、xml处理、ConfigParser、hashlib、re

    ---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1 ...

  5. 常用模块 - shutil模块

    一.简介 shutil – Utility functions for copying and archiving files and directory trees.(用于复制和存档文件和目录树的实 ...

  6. 进击的Python【第五章】:Python的高级应用(二)常用模块

    Python的高级应用(二)常用模块学习 本章学习要点: Python模块的定义 time &datetime模块 random模块 os模块 sys模块 shutil模块 ConfigPar ...

  7. python学习笔记之常用模块(第五天)

    参考老师的博客: 金角:http://www.cnblogs.com/alex3714/articles/5161349.html 银角:http://www.cnblogs.com/wupeiqi/ ...

  8. Python_Day6_Pyhotn常用模块学习

    本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...

  9. Python 之路 Day5 - 常用模块学习

    本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...

随机推荐

  1. PostgreSQL-8-数据合并

    -- 1.JOIN与UNION的区别详解 CREATE TABLE t1(id int,value1 text); ,,,'c'); -- 创建表格t1 CREATE TABLE t2(id int, ...

  2. 清空模拟器中的app

    1.打开模拟器 2.在左上角得下拉菜单选择“还原内容和设置” 3.选择“还原” ,确定 就ok了! 图解如下:

  3. layui 单选框选中事件

    <div class="layui-form-item" pane=""> <label class="layui-form-lab ...

  4. Qt 2D绘图之四:绘图中的其他问题

    一.重绘事件 前面讲到的所有绘制操作都是在重绘事件处理函数paintEvent()中完成的,是QWidget类中定义的函数.一个重绘事件用来重绘一个部件的全部或者部分区域,下面几个原因中的任意一个都会 ...

  5. BZOJ1218(线段树+扫描线)

    1.扫描线扫描x轴,线段树维护y轴. 2.坐标+1,线段树是从1开始维护.然后让边长--,这样就能包含边上的点了. 3.为了保证点在正方形内:在x轴上利用差分的思想,在x出Add(val),在x+r( ...

  6. Linux--NiaoGe-Service-08(路由)

    路由 Linux系统下的路由表是由小到大排列的,即C类地址-->B类地址-->A类地址-->0.0.0.0(默认路由). Linux系统中使用route命令查看路由表 [root@w ...

  7. WEB 前端菜鸟,感觉很迷茫,该怎么做?

    前几天看到这样的问题 先说问题吧:感觉前端涉及到的东西太多了,自己也很浮躁,看了挺多书,可是代码缺敲得却不多.技术菜,又什么都想学,比如现在纠结要不要先学scss或者php或者angularjs,ba ...

  8. GetDC(),ReleaseDC()

    用GetDC()得到的DC, 必须调用ReleaseDC()用CreateDC()创建的DC, 必须调用DeleteDC() 两者是不能混淆的.一种典型的错误代码如下:CDC* pDC = GetDC ...

  9. 洛谷 P2947 [USACO09MAR]仰望Look Up

    题目描述 Farmer John's N (1 <= N <= 100,000) cows, conveniently numbered 1..N, are once again stan ...

  10. Codeforces C The Game of Efil (暴力枚举状态)

    http://codeforces.com/gym/100650 阅读题,边界的cell的邻居要当成一个环形的来算,时间有8s,状态最多2^16种,所以直接暴力枚举就行了.另外一种做法是逆推. #in ...