国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中配置文件的使用

2019-11-06 08:06:39
字體:
來源:轉載
供稿:網友

因為項目的需要,要用到Python加載配置文件。本文主要參考了http://www.cnblogs.com/victorwu/p/5762931.html

配置文件的讀取示例

a) 配置文件中包含一個或多個 section, 每個 section 有自己的 option;

b) section 用 [sect_name] 表示,每個option是一個鍵值對,使用分隔符 = 或 : 隔開;

c) 在 option 分隔符兩端的空格會被忽略掉

d) 配置文件使用 # 和 ; 注釋

下面給出一個配置文件的例子。

[mongodb]host = amaster[kafka]bootstrap_servers = amaster:9092,anode1:9092,anode2:9092[log]log_file_name = kuaidaili_spider.log[zookeeper]conn_str = amaster:2181,anode1:2181,anode2:2181

測試代碼:

#-*- coding: utf-8 -*-import ConfigParserdef func(): cp = ConfigParser.SafeConfigParser() cp.read('kuaidaili_spider.cfg') 輸出結果:

mongodb host amasterkafka bootstrap_servers amaster:9092,anode1:9092,anode2:9092log file name kuaidaili_spider.logzookeeper conn string amaster:2181,anode1:2181,anode2:2181

下面的內容來自http://www.cnblogs.com/victorwu/p/5762931.html

Unicode 編碼的配置

配置文件如果包含 Unicode 編碼的數據,需要使用 codecs 模塊以合適的編碼打開配置文件。

myapp.conf

[msg]hello = 你好config_parser_unicode.pyimport ConfigParserimport codecscp = ConfigParser.SafeConfigParser()with codecs.open('myapp.conf', 'r', encoding='utf-8') as f: cp.readfp(f)print cp.get('msg', 'hello')

allow_no_value

通常情況下, option 是一個鍵值對。但是,當 SafeConfigParser 的參數 allow_no_value 設置成 True 時,它允許 option 不設置值而只是作為一個標識。

allow_no_value.conf

# option as Flag[flag]flag_opt

allow_no_value.py

import ConfigParsercp = ConfigParser.SafeConfigParser(allow_no_value = True)cp.read('myapp.conf')print cp.get('flag', 'flag_opt'); # None

allow_no_value 默認設置成 False,此時如果配置文件中存在沒有設置值的 option,在讀取配置文件時將拋出異常

ConfigParser.ParsingError。當 allow_no_value 設置成 True 時,如果一個 option 沒有設置值,has_option 方法會返回 True,get 方法會返回 None。

DEFAULT section

如果配置文件中存在一個名為 DEFAULT 的 section,那么其他 section 會擴展它的 option 并且可以覆蓋它的 option。

db.conf

[DEFAULT]host = 127.0.0.1port = 3306[db_root]user = rootpass = root[db_huey]host = 192.168.1.101user = hueypass = huey

default_section.py

print cp.get('db_root', 'host') # 127.0.0.1print cp.get('db_huey', 'host') # 192.168.1.101

插值 Interpolation

SafeConfigParser 提供了插值的特性來結合數據。

url.conf

[DEFAULT]url = %(protocol)s://%(server)s:%(port)s/[http]protocol = httpserver = localhostport = 8080[ftp]url = %(protocol)s://%(server)s/protocol = ftpserver = 192.168.1.102

interpolation_demo.py

import ConfigParsercp = ConfigParser.SafeConfigParser()cp.read('url.conf')print cp.get('http', 'url') # http://localhost:8080/print cp.get('ftp', 'url') # ftp://192.168.1.102/
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松江区| 客服| 莱芜市| 榕江县| 普兰县| 枣强县| 于都县| 汝南县| 民和| 大同县| 广德县| 常州市| 龙井市| 邵武市| 阿勒泰市| 神农架林区| 呼伦贝尔市| 海宁市| 宿松县| 绥棱县| 吴川市| 塘沽区| 顺平县| 遂川县| 赣榆县| 滁州市| 湖州市| 张北县| 钟祥市| 锡林浩特市| 望奎县| 工布江达县| 衡南县| 南开区| 栾川县| 会泽县| 合山市| 玛纳斯县| 东海县| 石家庄市| 顺平县|