python中配置檔案的使用方法

2021-09-19 18:32:41 字數 3127 閱讀 7751

專案中使用的常量,我們把它收集在乙個檔案中,這就是配置檔案。配置檔案在專案中是非常必要的,它避免了專案中檔案對常量的分散使用,讓常量可以統一修改,避免造成修改不全面的問題。

常用的配置檔案字尾是.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試...