Preface
過往在撰寫 Java 程式時,都會利用 .property 檔案來存放一些系統變數。但在 python 上並沒有專門處理 properties 格式的檔案,只有 ini 格式的檔案。因此本篇主要教學如何處理 Python 讀取 ini 內的 properties。
執行步驟
1. 安裝 configparser 套件
於程式執行環境下 pip 安裝指令
2. 建立 ini 檔案
新增一個 test.ini 檔案,於檔案內寫入相關系統參數,本篇文章的範例主要是讀取 DB 的連線資訊:
- test.ini
- [TEST]
- DB_PASSWORD = 1234
- [DEFAULT]
- mssql_host = 140.92.27.37
- mssql_port = 1433
- # Force code to read fallback setting
- # mssql_username = john
- # Refer to setting from other section
- mssql_password = ${TEST:DB_PASSWORD}
- mssql_db_list = abc, efg
3. 程式碼撰寫
新增一隻 Python 程式,於程式內 import 剛剛安裝的 configparser lib,接著讀取 test.ini 檔案後,即可抓取 ini 檔案的參數值:
- test.py
- #!/usr/bin/env python
- import os
- import sys
- from configparser import ConfigParser, ExtendedInterpolation
- target_section = 'DEFAULT'
- config = ConfigParser(interpolation=ExtendedInterpolation())
- config.read('test.ini')
- host = config[target_section]['mssql_host']
- port = config.getint(target_section, 'mssql_port')
- username = config.get(target_section, 'mssql_username', fallback='johnson')
- password = config['DEFAULT']['mssql_password']
- databases = map(lambda e:e.strip(), config[target_section].get('mssql_db_list').split(','))
- print("Connect {}:{} with DB={} (user={}; pwd={})".format(host, port, databases, username, password))
Supplement
* Youtube - Python Config Parser
沒有留言:
張貼留言