專案中使用的常量,我們把它收集在乙個檔案中,這就是配置檔案。配置檔案在專案中是非常必要的,它避免了專案中檔案對常量的分散使用,讓常量可以統一修改,避免造成修改不全面的問題。
常用的配置檔案字尾是.ini、.conf、.py,當然還有使用.json、.txt的,推薦使用常用的.ini、.py,配置檔案的名字一般是config便於理解和使用。
.ini 檔案是initialization file的縮寫,即初始化檔案,是windows的系統配置檔案所採用的儲存格式,統管windows的各項配置;.py的配置檔案,在python專案中是作為乙個包匯入,嚴格來說不是配置檔案,而是擴充套件包。
下面將介紹兩類配置檔案的使用,一類是.ini、.txt,另一類是.py。
.ini、
.txt配置檔案使用方法是一致的,只是乙個字尾的區別,這裡以ini配置檔案來介紹,這類配置檔案我們使用內建configparser庫來使用,它可以實現配置檔案的寫入、更新、刪除、讀取等操作非常方便,建議使用這種方式。
新建乙個config.ini的配置檔案內容如下:
[mysql]
name = admin
host = 255.255.255.0
proxy = 6037
password = 123456
pool = true
time = 3
其中中的是section節點,該節點下的等式是option即鍵=值
config.sections() # 獲取section節點
['mysql']
config.options('mysql') # 獲取指定section 的options即該節點的所有鍵
['name', 'host', 'proxy', 'password', 'pool', 'time']
config.get("mysql", "name") # 獲取指定section下的options
'admin'
config.getint("mysql", "proxy") # 將獲取到值轉換為int型
6037
config.getboolean("mysql", "pool") # 將獲取到值轉換為bool型
true
config.getfloat("mysql", "time") # 將獲取到值轉換為浮點型
3.0config.items("mysql") # 獲取section的所用配置資訊
[('name', 'admin'), ('host', '255.255.255.0'), ('proxy', '6037'), ('password', '123456'), ('pool', 'true'), ('time', '3')]
config.set("mysql", "name", "root") # 修改db_port的值為69
config.get("mysql", "name")
'root'
config.has_section("mysql") # 是否存在該section
true
config.has_option("mysql", "password") # 是否存在該option
true
config.add_section("redis") # 新增section節點
config.set("redis", "name", "redis_admin") # 設定指定section 的options
config.items('redis')
[('name', 'redis_admin')]
常用方法如下:
# -*- coding: utf-8 -*-
import configparser
config = configparser.configparser()
config.read("config.ini", encoding="utf-8")
config.sections() # 獲取section節點
config.options('mysql') # 獲取指定section 的options即該節點的所有鍵
config.get("mysql", "name") # 獲取指定section下的options
config.getint("mysql", "proxy") # 將獲取到值轉換為int型
config.getboolean("mysql", "pool") # 將獲取到值轉換為bool型
config.getfloat("mysql", "time") # 將獲取到值轉換為浮點型
config.items("mysql") # 獲取section的所用配置資訊
config.set("mysql", "name", "root") # 修改db_port的值為69
config.has_section("mysql") # 是否存在該section
config.has_option("mysql", "password") # 是否存在該option
config.add_section("redis") # 新增section節點
config.set("redis", "name", "redis_admin") # 設定指定section 的options
config.remove_section("redis") # 整個section下的所有內容都將刪除
config.remove_option("mysql", 'time') # 刪除section下的指定options
config.write(open("config", "w")) # 儲存config
當然使用.text、.conf字尾的情況如上,使用方法也同上。
至於使用.py檔案的配置方法可以同使用乙個本地包一樣,也可以像scrapy的get_project_settings方法初始化setting.py,這個就顯得很專業,後面會對其原始碼詳細分析。
;.json格式配置檔案一般用來存放大量的結構化配置或者本地資料,使用較少。
最後一種是資料庫配置,將配置檔案寫到資料庫,每次程式執行前先讀取資料庫,在初始化,這種準確來說已經不再是配置,而是程式設計的方案。
Python中配置檔案的使用
因為專案的需要,要用到python載入配置檔案。本文主要參考了 a 配置檔案中包含乙個或多個 section,每個 section 有自己的 option b section 用 sect name 表示,每個option是乙個鍵值對,使用分隔符 或 隔開 c 在 option 分隔符兩端的空格會被...
python配置檔案的使用
將所有的 和配置都變成模組化可配置化,這樣就提高了 的重用性,不再每次都去修改 內部,這個就是我們逐步要做的事情,可配置化 模組 from configparser import configparser configparser是python自帶的模組,用法如下 1.建立configparser物...
python中yaml配置檔案模組的使用
和gnu一樣,yaml是乙個遞迴著說 不 的名字。不同的是,gnu對unix說不,yaml說不的物件是xml。yaml不是xml。為什麼不是xml呢?因為 上面5條也就是xml不足的地方。同時,yaml也有xml的下列優點 yaml可以基於流來處理 yaml表達能力強,擴充套件性好。總之,yaml試...