2018年11月15日 星期四

[ Python 文章收集 ] Python 如何讀取 property file

Source From Here 
Preface 
過往在撰寫 Java 程式時,都會利用 .property 檔案來存放一些系統變數。但在 python 上並沒有專門處理 properties 格式的檔案,只有 ini 格式的檔案。因此本篇主要教學如何處理 Python 讀取 ini 內的 properties。 

執行步驟 

1. 安裝 configparser 套件 
於程式執行環境下 pip 安裝指令 
# pip install configparser


2. 建立 ini 檔案 
新增一個 test.ini 檔案,於檔案內寫入相關系統參數,本篇文章的範例主要是讀取 DB 的連線資訊: 
- test.ini 
  1. [TEST]  
  2. DB_PASSWORD = 1234  
  3.   
  4. [DEFAULT]  
  5. mssql_host = 140.92.27.37  
  6. mssql_port = 1433  
  7.   
  8. # Force code to read fallback setting  
  9. # mssql_username = john  
  10.   
  11. # Refer to setting from other section  
  12. mssql_password = ${TEST:DB_PASSWORD}  
  13. mssql_db_list = abc, efg  


3. 程式碼撰寫 
新增一隻 Python 程式,於程式內 import 剛剛安裝的 configparser lib,接著讀取 test.ini 檔案後,即可抓取 ini 檔案的參數值: 
- test.py 
  1. #!/usr/bin/env python  
  2. import os  
  3. import sys  
  4. from configparser import ConfigParser, ExtendedInterpolation  
  5.   
  6. target_section = 'DEFAULT'  
  7. config = ConfigParser(interpolation=ExtendedInterpolation())  
  8. config.read('test.ini')  
  9. host = config[target_section]['mssql_host']  
  10. port = config.getint(target_section, 'mssql_port')  
  11. username = config.get(target_section, 'mssql_username', fallback='johnson')  
  12. password = config['DEFAULT']['mssql_password']  
  13. databases = map(lambda e:e.strip(), config[target_section].get('mssql_db_list').split(','))  
  14.   
  15. print("Connect {}:{} with DB={} (user={}; pwd={})".format(host, port, databases, username, password))  
4. 執行程式 
$ ./test.py
Connect 140.92.27.37:1433 with DB=[u'abc', u'efg'] (user=johnson; pwd=1234)


Supplement 
Youtube - Python Config Parser

沒有留言:

張貼留言

[Git 文章收集] Differences between git merge and git rebase

Source From  Here Preface Merging and rebasing are the two most popular way to applying changes from one branch into another one. They bot...