【Python】配置文件的讀取和寫入

新建一個配置文件

  • 配置文件的優點:將所有的代碼嗎和配置都變成模塊化可配置化,這樣能夠提高代碼的重用性。

  • 配置文件的命名:一般以ini , conf ,yaml ,cfg 結尾。

  • 格式:由配置塊和配置項組成,例如下方的 appsetting.ini 文件

    # 這裏是日誌相關的配置
    [log]
    # 日誌收集器的等級
    level = DEBUG
    # 輸出到日誌文件的等級
    fh_level = WARNING
    # 記錄日誌的文件名字
    filename = all.log
    # 輸出到控制檯的等級
    sh_level = DEBUG
    [test]
    # 測試正整數類型
    num = 123
    # 測試浮點數
    floatnum = 3.14
    # 測試布爾值
    boolstr = true
    [info]
    

配置文件的讀取

from configparser import ConfigParser

class ConfigHandle(ConfigParser):
    def __init__(self, filename):
        super().__init__()
        self.read(filename, encoding='utf-8')

conf = ConfigHandle(r'E:\PycharmProjects\Interface_auto_test\conf\appsetting.ini')
# 使用get方法獲取配置文件中的值,返回都是str類型
print(conf.get('log', 'sh_level'))  # 結果:(str)DEBUG
# 使用getint只能夠獲取int類型的值,否則會報錯。返回int類型的值
print(conf.getint('test', 'num'))  # 結果:(int)123
# 使用getfloat只能夠獲取float類型的值,否則會報錯。返回float類型的值
print(conf.getfloat('test', 'floatnum'))  # 結果:(float)3.14
# 使用getboolean只能夠獲取布爾類型的值,否則會報錯。
# 不論是大寫還是小寫的true,false,都回返回標準格式的True和False
print(conf.getboolean('test', 'boolstr'))  # 結果:(bool)True

配置文件的寫入

# 使用conf 寫入配置數據,較少用
conf.set('info', 'name', 'kaishui')
# 打開文件的模式必須爲 w,否則會將之前的數據再次寫入
conf.write(fp=open(r'E:\PycharmProjects\Interface_auto_test\conf\appsetting.ini', 'w', encoding='utf-8'))  # 結果:寫入成功

YAML文件的操作

yaml文件格式:

info:
  name: kaishui
  gender: female
log:
  level: DEBUG
  fh_level: WARNING
  sh_level: INFO
test:
  host: 127.0.0.1
  port: 8080
  dict: {
          a: 100,
          b: 400
}
  list: [11,44,55,77,66]
  boolstr: true

注:‘:’之後有一個空格和值區分開來

yaml 配置文件讀取數據

  • 首先需要安裝yaml模塊,使用命令:pip install pyyaml
  • 安裝完成後,導入該模塊:import yaml
with open(r'E:\PycharmProjects\Interface_auto_test\conf\myyaml.yaml', 'r', encoding='utf-8') as f:
    file = yaml.load(f, Loader=yaml.FullLoader)
    for item in file.items():
        print(item)
    ‘’‘
    結果:
    ('info', {'name': 'kaishui', 'gender': 'female'})
('log', {'level': 'DEBUG', 'fh_level': 'WARNING', 'sh_level': 'INFO'})
('test', {'host': '127.0.0.1', 'port': 8080, 'dict': {'a': 100, 'b': 400}, 'list': [11, 44, 55, 77, 66], 'boolstr': True})
    ’‘’

使用yaml配置文件的優點

  • 在yaml文件中,值爲字典和列表時填寫較爲方便
  • yaml文件讀取出來的數據的數據類型會根據數據進行動態改變,例如123讀取出來爲int類型,true讀取出來爲bool類型。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章