1. 程式人生 > >python操作cfg配置檔案

python操作cfg配置檔案



*.cfg檔案一般是程式執行的配置檔案,python為讀寫常見配置檔案提供了一個ConfigParser模組,所以在python中解析配置檔案相當簡單,下面就舉例說明一下具體的操作方法。

寫檔案程式碼:

# -* - coding: UTF-8 -* -
import os
import ConfigParser

CONFIG_FILE = "Config.cfg"

host = "127.0.0.1"

port = "5432"

name = "DATABASE_NAME"

username = "postgres"

password = "postgres"

if __name__ == "__main__":

         conf = ConfigParser.ConfigParser()

         cfgfile = open(CONFIG_FILE,'w')

         conf.add_section("DB_Config") # 在配置檔案中增加一個段

         # 第一個引數是段名,第二個引數是選項名,第三個引數是選項對應的值

         conf.set("DB_Config", "DATABASE_HOST", host) 

         conf.set("DB_Config", "DATABASE_PORT", port)

         conf.set("DB_Config", "DATABASE_NAME", name)

         conf.set("DB_Config", "DATABASE_USERNAME", username)

         conf.set("DB_Config", "DATABASE_PASSWORD", password)

         conf.add_section("FL_Config")

         # 將conf物件中的資料寫入到檔案中

         conf.write(cfgfile)

         cfgfile.close()

生成的配置檔案Config.cfg如下:

[DB_Config]

database_host = 127.0.0.1

database_port = 5432

database_name = DATABASE_NAME

database_username = postgres

database_password = postgres


[FL_Config]

讀檔案程式碼:

# -* - coding: UTF-8 -* -

import os

import ConfigParser

CONFIG_FILE = "Config.cfg"

def main():

         if os.path.exists( os.path.join( os.getcwd(),CONFIG_FILE ) ):

                   config = ConfigParser.ConfigParser()

                   config.read(CONFIG_FILE)

                   #第一個引數指定要讀取的段名,第二個是要讀取的選項名

                   host = config.get("DB_Config", "DATABASE_HOST") 

                   port = config.get("DB_Config", "DATABASE_PORT")

                   name = config.get("DB_Config", "DATABASE_NAME")

                   username = config.get("DB_Config", "DATABASE_USERNAME")

                   password = config.get("DB_Config", "DATABASE_PASSWORD")

                   print host, port, name, username, password

if __name__ == '__main__':

         main()

 

輸出結果:127.0.0.1 5432 DATABASE_NAME postgres postgres

以上就是python讀寫cfg配置檔案的簡單操作,當然,也可以利用config.sections()來獲取所有的段,

config. options("DB_Config")來獲取DB_Config段下的所有選項等等。