程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python configparser 讀取 ini類型的配置文件

編輯:Python

文章目錄

  • 一. 讀取配置
  • 二. 添加配置
  • 三. 上碼
  • 四.應用示例

一. 讀取配置

  • read(filename) 直接讀取ini文件內容
  • sections() 獲取所有的section,並以列表的形式返回
  • options(section) 獲取該section的所有option
  • items(section) 獲取該section的所有鍵值對
  • get(section,option) 獲取section中option的值,返回為string類型
  • getint(section,option) 獲取section中option的值,返回為int類型

二. 添加配置

  • add_section(section) 添加一個新的section
  • set( section, option, value) 對section中的option進行設置
    更需要調用write寫入配置文件

三. 上碼

""" # config.ini 配置文件 [mysql] host = 192.168.1.1 port = 3306 user = root password = password charset = utf-8 [mongo] host = 192.168.1.1 port = 3357 user = root password = password """
import configparser
#讀取
cf=configparser.ConfigParser()
cf.read("config.ini")
print(cf)
# <configparser.ConfigParser object at 0x00000000011F79E8>
secs=cf.sections() # 獲得所有區域
print("sections:",secs)
# sections: ['mysql', 'mongo']
opts=cf.options("mysql") # 獲取區域的所有key
print(opts)
# ['host', 'port', 'user', 'password', 'charset']
#打印出每個區域的所有屬性
for sec in secs:
print(cf.options(sec))
# ['host', 'port', 'user', 'password', 'charset']
# ['host', 'port', 'user', 'password']
items = cf.items("mysql") # 獲取鍵值對
print(items)
# [('host', '192.168.1.1'), ('port', '3306'), ('user', 'root'), ('password', 'password'), ('charset', 'utf-8')]
val=cf.get("mysql","host")
print(val) # 192.168.1.1
print(type(val)) #--><class 'str'>
val=cf.getint("mysql","port")
print(val) # 3306
print(type(val)) #--><class 'int'>
#設置
cf.set("redis","host","192.168.1.2")
cf.add_section("newsection")
cf.set("redis","port","1000")
#寫入
cf.write(open("config.ini","w"))
#判斷
ret=cf.has_section("redis") #判斷存不存在
print(ret) # True
cf.remove_section("redis")#刪除
ret=cf.has_section("redis") #判斷存不存在
print(ret) # False

四.應用示例

""" 本代碼主要功能是解析配置文件,目前支持INI類的配置文件解析 僅支持讀取配置文件,不支持修改配置文件 """
import os
import configparser
class ConfigReader():
""" 配置文件讀取器, 目前僅支持讀取INI類的配置文件,不支持修改 """
def __init__(self, file) -> None:
if not os.path.exists(file):
raise FileNotFoundError("config file is not exists")
self.config = configparser.ConfigParser()
self.config.read(file)
def get_items_by_section(self, section) -> dict:
""" 獲取section下的鍵值對 返回字典格式 """
if self.config.has_section(section):
section_items = self.config.items(section)
return dict(section_items)
else:
raise ValueError("section is not exists")
if __name__ == "__main__":
config_file = "D:\myprojects\python\config\config.ini"
c = ConfigReader(config_file)
sign_info = c.get_items_by_section("anyway")
print(sign_info)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved