zoukankan      html  css  js  c++  java
  • 常用模块之configpaser与shutil

    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)
  • 相关阅读:
    通过模板类简单实现Spark的JobServer
    aggregate 和 treeAggregate 的对比
    IntelliJ Idea 常用快捷键列表
    dataframe 数据统计可视化---spark scala 应用
    用java api读取HDFS文件
    .net Core 简单中间件使用
    .Net Core Ocelot网关使用熔断、限流 二
    .Net Core Ocelot网关使用 一
    Docker 问题处理
    CentOS 创建用户
  • 原文地址:https://www.cnblogs.com/liusijun113/p/10111675.html
Copyright © 2011-2022 走看看