Python使用ConfigParser模組讀取配置檔案(config.ini)以及寫入配置檔案
阿新 • • 發佈:2021-10-28
這篇文章主要介紹了Python讀取配置檔案(config.ini)以及寫入配置檔案,具有很好的參考價值,希望對大家有所幫助!
二、ConfigParser 初始化物件
前言
使用配置檔案來靈活的配置一些引數是一件很常見的事情,配置檔案的解析並不複雜,在python裡更是如此,在官方釋出的庫中就包含有做這件事情的庫,那就是configParser。configParser解析的配置檔案的格式比較象ini的配置檔案格式,就是檔案中由多個section構成,每個section下又有多個配置項。括號“[ ]”內包含的為section。緊接著section 為類似於key-value 的options 的配置內容。
比如,我的目錄如下,在test_config下有一個config.ini配置檔案
一、ConfigParser簡介
ConfigParser 是用來讀取配置檔案的包。配置檔案的格式如下:中括號“[ ]”內包含的為section。section 下面為類似於key-value 的配置內容。括號“[ ]”內包含的為section。緊接著section 為類似於key-value 的options 的配置內容。
# 定義config分組 [config] platformName=Android appPackage=com.romwe appActivity=com.romwe.SplashActivity # 定義cmd分組 [cmd] viewPhone=adb devices startServer=adb start-server stopServer=adb kill-server install=adb install aaa.apk id=1 weight=12.1 isChoice=True # 定義log分組 [log] log_error=true
二、ConfigParser 初始化物件
使用ConfigParser 首選需要初始化例項,並讀取配置檔案:
PS:python3裡面自帶configparser模組來讀取ini檔案,敲黑板:python2的版本是Configparser
# python3 import configParser config = configparser.ConfigParser() config.read("config_ini", encoding="utf-8")
三、ConfigParser 常用方法
1、獲取所用的section節點
# 獲取所用的section節點 import configparser config = configparser.ConfigParser() config.read("config_ini", encoding="utf-8") print(config.sections()) #執行結果 # ['config', 'cmd', 'log']
2、獲取指定section 的options。即將配置檔案某個section 內key 讀取到列表中:
import configparser config = configparser.ConfigParser() config.read("config_ini", encoding="utf-8") r = config.options("config") print(r) #執行結果 # ['platformName', 'appPackage', 'appActivity']
3、獲取指點section下指點option的值
import configparser config = configparser.ConfigParser() config.read("config.ini", encoding="utf-8") r = config.get("config", "platformName")
# r1 = config.getint("db", "k1") #將獲取到值轉換為int型
# r2 = config.getboolean("db", "k2" ) #將獲取到值轉換為bool型
# r3 = config.getfloat("db", "k3" ) #將獲取到值轉換為浮點型
print(r)
#執行結果 # Android
4、獲取指點section的所用配置資訊
import configparser config = configparser.ConfigParser() config.read("config.ini", encoding="utf-8") r = config.items("platformName") print(r) #執行結果 #[('platformName', 'Android'), ('appPackage', 'com.romwe'), ('appActivity', 'com.romwe.SplashActivity')]
5、修改某個option的值,如果不存在則會出建立
# 修改某個option的值,如果不存在該option 則會建立 import configparser config = configparser.ConfigParser() config.read("config_ini", encoding="utf-8") config.set("config", "platformName", "ios") #修改platformName的值為ios config.write(open("config.ini", "w"))
# 執行結果 # 定義config分組 [config] platformName=ios appPackage=com.romwe appActivity=com.romwe.SplashActivity # 定義cmd分組 [cmd] viewPhone=adb devices startServer=adb start-server stopServer=adb kill-server install=adb install aaa.apk id=1 weight=12.1 isChoice=True # 定義log分組 [log] log_error=true
6、檢查section或option是否存在,bool值
import configparser config = configparser.ConfigParser() config.has_section("config") #是否存在該section config.has_option("config", "platformName") #是否存在該option
7、新增section 和 option
import configparser config = configparser.ConfigParser() config.read("config.ini", encoding="utf-8") if not config.has_section("brand"): # 檢查是否存在section config.add_section("brand") if not config.has_option("brand", "China"): # 檢查是否存在該option config.set("brand", "China", "xiaomi") config.write(open("config.ini", "w"))
# 執行結果 # 定義config分組 [config] platformName=Android appPackage=com.romwe appActivity=com.romwe.SplashActivity # 定義cmd分組 [cmd] viewPhone=adb devices startServer=adb start-server stopServer=adb kill-server install=adb install aaa.apk id=1 weight=12.1 isChoice=True # 定義log分組 [log] log_error=true [brand] China=xiaomi
8、刪除section 和 option
import configparser config = configparser.ConfigParser() config.read("config.ini", encoding="utf-8") config.remove_section("brand") #整個section下的所有內容都將刪除 config.write(open("config.ini", "w"))
# 定義config分組 [config] platformName=Android appPackage=com.romwe appActivity=com.romwe.SplashActivity # 定義cmd分組 [cmd] viewPhone=adb devices startServer=adb start-server stopServer=adb kill-server install=adb install aaa.apk id=1 weight=12.1 isChoice=True # 定義log分組 [log] log_error=true
9、寫入檔案
以下的幾行程式碼只是將檔案內容讀取到記憶體中,進過一系列操作之後必須寫回檔案,才能生效。
import configparser config = configparser.ConfigParser() config.read("comfig.ini", encoding="utf-8")
寫回檔案的方式如下:(使用configparser的write方法)
config.write(open("config.ini", "w"))