zoukankan      html  css  js  c++  java
  • python常用模块之configparser模块

    python常用模块之configparser

    作用:解析配置文件

    假设在当前目录下有这样一个conf.ini文件

    [DEFAULT]
    ServerAliveInterval = 45
    Compression = yes
    CompressionLevel = 9
    ForwardX11 = yes
    
    [bitbucket.org]
    User = hg
    
    [topsecret.server.com]
    Port = 50022
    ForwardX11 = no
    

    模块的操作

    import configparser
    
    conf = configparser.ConfigParser()  # 创建一个对象
    # print(conf.sections())  # [],因为没有打开文件,所以是空的
    
    conf.read("conf.ini")  # 读取文件内容
    print(conf.sections())  # ['bitbucket.org', 'topsecret.server.com']
    # 那么为什么没有DEFAULT呢?因为在每一个配置文件中都会有一个DEFAULT,这是全局默认配置的东西,打印不出来的,但是可以获取到
    
    print(conf.default_section)  # DEFAULT
    
    # 拿到里面的值
    print(conf['bitbucket.org']['User'])  # hg  此时是知道这个配置文件中的子模块bitbucket.org里有User
    
    # 循环
    for k,v in conf['bitbucket.org'].items():
        print(k,v)
    # user hg
    # serveraliveinterval 45
    # compression yes
    # compressionlevel 9
    # forwardx11 yes
    那么,为啥会把DEFAULT里的打印出来呢?因为这是configparser设置的,会默认出现在每一个节点中
    

    configparser其他的操作

    # 还是以上面的conf.ini为例
    
    import configparser
    conf = configparser.ConfigParser()  # 生成一个对象
    conf.read("conf.ini",encoding='utf-8')  # 读取配置文件内容
    
    # 读
    # print(dir(conf))
    
    print(conf.options("bitbucket.org"))  # 将bitbucket.org区域里的key全部拿出,包括DEFAULT里面的,['user', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11']
    print(conf['bitbucket.org']['User'])  # hg,拿到bitbucket.org里的User这个key的值
    
    # 增加
    conf.add_section("group1")  # 增加name区域
    conf['group1']['age'] = '22'  # 增加group1区域中age这个key的值为22
    conf['group1']['name'] = 'xiao'
    conf.write(open("conf.ini","r+"))  # 写进文件中
    conf.write(open("i.cfg","w"))  # 或者写到一个新文件中
    
    # 删除
    # conf.remove_section('group1')  # 删除整个group1区域
    # conf.write(open('i.cfg','w'))
    
    conf.remove_option('group1','name')  # 只删除group1区域里的name这个key
    conf.write(open('conf.ini','w'))
    
  • 相关阅读:
    本地化中文示例代码需求调查
    微软一站式示例代码库下载过热导致下载计数器溢出bug
    中文版示例代码浏览器for Windows 8
    Tips of the Week for Microsoft Products
    [leetcode] Longest Substring Without Repeating Characters
    [leetcode] Add Two Numbers *
    树的直径 图的直径
    解题笔记(2)——部分面试题解题思路 [转]
    两个容积互质的水杯可倒出任意从1到容积和的水量
    latex中括号大小控制 [转]
  • 原文地址:https://www.cnblogs.com/xiaoyafei/p/9037606.html
Copyright © 2011-2022 走看看