#!/usr/bin/env python
# -*- coding:utf-8 -*-
# ------------------------------------------------------------
# 参考资料:
# python模块(转自Yuan先生) - 狂奔__蜗牛 - 博客园
# https://www.cnblogs.com/guojintao/articles/9070485.html
#
# 14.2. configparser — Configuration file parser — Python 3.7.0 documentation
# https://docs.python.org/3/library/configparser.html
# ------------------------------------------------------------
# ******************** day23_3_configparse *******************
# ******************** day23_3_configparse *******************
# =====>>>>>>内容概览
# =====>>>>>>内容概览
# ------------------------------------------------------------
# # 1、configparse简介
# # # ConfigParser模块在python3中修改为configparser.这个模块定义了一个ConfigParser类,该类
# # # 的作用是使用配置文件生效,配置文件的格式和windows的INI文件的格式相同
# # # 该模块的作用 就是使用模块中的RawConfigParser()、ConfigParser()、 SafeConfigParser()
# # # 这三个方法(三者择其一),创建一个对象使用对象的方法对指定的配置文件做增删改查 操作。
# ------------------------------------------------------------
# ------------------------------------------------------------
# # 2、configparse生成配置文件
# # # 生成的ini配置文件中,标签是的字符按照原来的输入生成,但是键名就是全部都会被转化成小写
# ------------------------------------------------------------
# ------------------------------------------------------------
# # 3、对 configparse生成配置文件 进行读取
# ------------------------------------------------------------
# ------------------------------------------------------------
# # 3.1、使用for对 configparse生成配置文件 进行读取
# # # 对自己所在的标签的键值读取完后,会默认读取[DEFAULT]的内容
# ------------------------------------------------------------
# ------------------------------------------------------------
# # 4、config.options、config.items、config.get
# # # 对 configparse生成配置文件 进行读取,以列表的形式输出、值
# # # 对自己所在的标签的键值读取完后,会默认读取[DEFAULT]的内容
# ------------------------------------------------------------
# ------------------------------------------------------------
# # 5、add_section、 config.write、config.set
# # #对配置文件写入标签,键名 + 键值
# ------------------------------------------------------------
# ------------------------------------------------------------
# # 6、remove_section
# # # 删除标签以及对应的内容
# ------------------------------------------------------------
# ------------------------------------------------------------
# # 7、remove_option
# # # # 删除标签内的'forwardx11'键名与对应的键值
# ------------------------------------------------------------
# ------------------------------------------------分割线-------------------------------------------------
# ------------------------------------------------分割线-------------------------------------------------
# ------------------------------------------------分割线-------------------------------------------------
''' # ------------------------------------------------------------ # # 1、configparse简介 # # # ConfigParser模块在python3中修改为configparser.这个模块定义了一个ConfigParser类,该类 # # # 的作用是使用配置文件生效,配置文件的格式和windows的INI文件的格式相同 # # # 该模块的作用 就是使用模块中的RawConfigParser()、ConfigParser()、 SafeConfigParser() # # # 这三个方法(三者择其一),创建一个对象使用对象的方法对指定的配置文件做增删改查 操作。 example.ini文件内容: [DEFAULT] ---->>标签,默认是[]包围起来的 serveraliveinterval = 45 ---->>serveraliveinterval键名, 45 键值 # # # # ------------------------------------------------------------ ''' ''' # ------------------------------------------------------------ # # 2、configparse生成配置文件 # # # 生成的ini配置文件中,标签是的字符按照原来的输入生成,但是键名就是全部都会被转化成小写 # ------------------------------------------------------------ ''' # # import configparser # config = configparser.ConfigParser() # config['DEFAULT'] = {'ServerAliveInterval': '45', # 'Compression': 'yes', # 'CompressionLevel':'9' # } # # config['Bitbucket.org'] = {} # config['Bitbucket.org']['User'] = 'hg' # # config['topsecret.server.com'] = {} # topsecret = config['topsecret.server.com'] # topsecret['Port'] = '50022' # mutates the parser # topsecret['ForwardX11'] = 'no' # same here # # config['DEFAULT']['ForwardX11'] = 'yes' # with open('example.ini','w') as configfile: # config.write(configfile) # # # D:Anaconda3python.exe D:/C_cache/py/day23-re_logging_hashlib_MoKuaiDaoRu/day23_3_configparse.py # # # # Process finished with exit code 0 ''' # ------------------------------------------------------------ # # 3、对 configparse生成配置文件 进行读取 'example.ini'文件内容: [DEFAULT] serveraliveinterval = 45 compression = yes compressionlevel = 9 forwardx11 = yes [Bitbucket.org] user = hg [topsecret.server.com] port = 50022 forwardx11 = no # ------------------------------------------------------------ ''' # import configparser # config = configparser.ConfigParser() # # [] ,没有指定读取的文件 # print("config.sections(): ".expandtabs(40), config.sections()) # # config.read('example.ini') # # 读标签,除默认标签外 # print("read,config.sections(): ".expandtabs(40), config.sections()) # # print("'bytebong.com' in config: ".expandtabs(40), 'bytebong.com' in config) # # print("config['Bitbucket.org']: ".expandtabs(40), config['Bitbucket.org']) # print("config['Bitbucket.org']['User']: ".expandtabs(40), config['Bitbucket.org']['User']) # # print("config['config['DEFAULT']['Compressiong']: ".expandtabs(40), # config['DEFAULT']['Compression']) # print("config['Bitbucket.org']['User']: ".expandtabs(40), # config['topsecret.server.com']['ForwardX11']) # # # # D:Anaconda3python.exe D:/C_cache/py/day23-re_logging_hashlib_MoKuaiDaoRu/day23_3_configparse.py # # config.sections(): [] # # read,config.sections(): ['Bitbucket.org', 'topsecret.server.com'] # # 'bytebong.com' in config: False # # config['Bitbucket.org']: <Section: Bitbucket.org> # # config['Bitbucket.org']['User']: hg # # config['config['DEFAULT']['Compressiong']: yes # # config['Bitbucket.org']['User']: no # # # # Process finished with exit code 0 ''' # ------------------------------------------------------------ # # 3.1、使用for对 configparse生成配置文件 进行读取 # # # 对自己所在的标签的键值读取完后,会默认读取[DEFAULT]的内容 'example.ini'文件内容: [DEFAULT] serveraliveinterval = 45 compression = yes compressionlevel = 9 forwardx11 = yes [Bitbucket.org] user = hg [topsecret.server.com] port = 50022 forwardx11 = no # ------------------------------------------------------------ ''' # # import configparser # config = configparser.ConfigParser() # config.read('example.ini') # # for key in config['Bitbucket.org']: # print(key) # # D:Anaconda3python.exe D:/C_cache/py/day23-re_logging_hashlib_MoKuaiDaoRu/day23_3_configparse.py # user # serveraliveinterval # compression # compressionlevel # forwardx11 # # Process finished with exit code 0 ''' # ------------------------------------------------------------ # # 4、config.options、config.items、config.get # # # 对 configparse生成配置文件 进行读取,以列表的形式输出、值 # # # 对自己所在的标签的键值读取完后,会默认读取[DEFAULT]的内容 'example.ini'文件内容: [DEFAULT] serveraliveinterval = 45 compression = yes compressionlevel = 9 forwardx11 = yes [Bitbucket.org] user = hg [topsecret.server.com] port = 50022 forwardx11 = no # ------------------------------------------------------------ ''' # # import configparser # config = configparser.ConfigParser() # config.read('example.ini') # # 输出键名 # print("config.options('Bitbucket.org'): ",config.options('Bitbucket.org')) # # 输出键名+键值 # print("config.items('Bitbucket.org'): ",config.items('Bitbucket.org')) # # 对输出键名+键值,进行值获取 # print("config.get('Bitbucket.org'): ",config.get('Bitbucket.org','serveraliveinterval')) # # # # D:Anaconda3python.exe D:/C_cache/py/day23-re_logging_hashlib_MoKuaiDaoRu/day23_3_configparse.py # # ['user', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11'] # # # # Process finished with exit code 0 # ''' # ------------------------------------------------------------ # # 5、add_section、 config.write、config.set # # #对配置文件写入标签,键名 + 键值 'example.ini'文件内容: [DEFAULT] serveraliveinterval = 45 compression = yes compressionlevel = 9 forwardx11 = yes [Bitbucket.org] user = hg [topsecret.server.com] port = 50022 forwardx11 = no # ------------------------------------------------------------ ''' # # import configparser # # config = configparser.ConfigParser() # config.read('example.ini') # # 添加标签 # config.add_section("YUAN") # # # 添加标签 # config.add_section("AAa") # # 对标签的内容进行写入 键名 + 键值 # config.set('AAa','k9','99999') # # # 写入 # with open('example.ini','w') as configfile: # config.write(configfile) # # D:Anaconda3python.exe D:/C_cache/py/day23-re_logging_hashlib_MoKuaiDaoRu/day23_3_configparse.py # # Process finished with exit code 0 ''' # ------------------------------------------------------------ # # 6、remove_section # # # 删除标签以及对应的内容 'example.ini'文件内容: [DEFAULT] serveraliveinterval = 45 compression = yes compressionlevel = 9 forwardx11 = yes [bitbucket.org] user = hg [YUAN] [AAa] k9 = 99999 # ------------------------------------------------------------ ''' # # import configparser # # config = configparser.ConfigParser() # config.read('example.ini') # # # 删除标签以及对应的内容 # config.remove_section('topsecret.server.com') # # # 写入 # with open('example.ini','w') as configfile: # config.write(configfile) # # # D:Anaconda3python.exe D:/C_cache/py/day23-re_logging_hashlib_MoKuaiDaoRu/day23_3_configparse.py # # # # Process finished with exit code 0 # # ''' # ------------------------------------------------------------ # # 7、remove_option # # # # 删除标签内的'forwardx11'键名与对应的键值 'example.ini'文件内容: [DEFAULT] serveraliveinterval = 45 compression = yes compressionlevel = 9 forwardx11 = yes [bitbucket.org] user = hg [YUAN] [AAa] k9 = 99999 # ------------------------------------------------------------ ''' # # import configparser # # config = configparser.ConfigParser() # config.read('example.ini') # # # 删除标签内的'forwardx11'键名与对应的键值 # config.remove_option('topsecret.server.com','forwardx11') # # 写入 # with open('example.ini','w') as configfile: # config.write(configfile) # D:Anaconda3python.exe D:/C_cache/py/day23-re_logging_hashlib_MoKuaiDaoRu/day23_3_configparse.py # # Process finished with exit code 0