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 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...