2008-09-24 25 views
23

Tôi đã sử dụng ConfigParser trong một thời gian khá ngắn cho các cấu hình đơn giản. Một điều khiến tôi buồn bã trong một thời gian dài là phần DEFAULT. Tôi không thực sự chắc chắn việc sử dụng phù hợp là gì. Tôi đã đọc tài liệu, nhưng tôi thực sự muốn thấy một số ví dụ thông minh về cách sử dụng của nó và cách nó ảnh hưởng đến các phần khác trong tệp (một cái gì đó thực sự minh họa loại điều có thể).Mục đích sử dụng của phần DEFAULT trong các tệp cấu hình được ConfigParser sử dụng là gì?

Trả lời

31

Tôi đã tìm thấy giải thích here bằng cách googling cho "cửa sổ ini" "phần mặc định". Tóm tắt: bất cứ điều gì bạn đưa vào phần [DEFAULT] sẽ được truyền tới mọi phần khác. Sử dụng ví dụ từ trang web liên kết, chúng ta hãy nói rằng tôi có một tập tin cấu hình gọi là test1.ini:

[host 1] 
lh_server=192.168.0.1 
vh_hosts = PloneSite1:8080 
lh_root = PloneSite1 

[host 2] 
lh_server=192.168.0.1 
vh_hosts = PloneSite2:8080 
lh_root = PloneSite2 

tôi có thể đọc này sử dụng ConfigParser:

>>> cp = ConfigParser.ConfigParser() 
>>> cp.read('test1.ini') 
['test1.ini'] 
>>> cp.get('host 1', 'lh_server') 
'192.168.0.1' 

Nhưng tôi nhận thấy lh_server đó là như nhau trong cả hai phần; và, thực sự, tôi nhận ra rằng nó sẽ giống nhau đối với hầu hết các máy chủ mà tôi có thể thêm vào. Vì vậy, tôi có thể làm được điều này, như test2.ini:

[DEFAULT] 
lh_server=192.168.0.1 

[host 1] 
vh_root = PloneSite1 
lh_root = PloneSite1 

[host 2] 
vh_root = PloneSite2 
lh_root = PloneSite2 

Mặc dù các phần không có phím lh_server, tôi vẫn có thể truy cập chúng:

>>> cp.read('test2.ini') 
['test2.ini'] 
>>> cp.get('host 1', 'lh_server') 
'192.168.0.1' 

Đọc trang liên kết cho một ví dụ nữa của việc sử dụng biến thay thế trong phần DEFAULT để đơn giản hóa tệp INI nhiều hơn.

+0

+1 để sử dụng Python trong các ví dụ. – refi64

Các vấn đề liên quan