2011-07-01 60 views
0

我有問題追加到配置文件。這是我想要創建的;ConfigParser問題Python

[section1] 
val1 = val2 
val3 = val4 

但是當我運行下面的代碼,我看到ConfigParser.NoSectionError: No section: 'section1'

import ConfigParser 

cfg = ConfigParser.RawConfigParser() 
cfg.set("section1", "val1", "val2") 

f = open("example.cfg", "a") 
cfg.write(f) 

如果我添加

if not cfg.has_section("section1"): 
    cfg.add_section("section1") 

,然後,這是我得到的;

[section1] 
val1 = val2 

[section1] 
val3 = val4 

有人能指點我做錯了什麼嗎?謝謝

+0

沒有它的作品。我想我沒有說清楚。我在cfg.set()之前添加if語句。我想這就是讓你迷惑的原因。 – Ivan

回答

5

我充實了你放了一下的代碼。您在檢查該部分之前是否正在閱讀現有文件?另外,您應該一次寫入整個文件。不要追加。

import ConfigParser 

cfg = ConfigParser.ConfigParser() 
cfg.read('example.cfg') 

if not cfg.has_section('section1'): 
    cfg.add_section('section1') 

cfg.set('section1', 'val1', 'val2') 
cfg.set('section1', 'val2', 'val3') 

f = open('example.cfg', 'w') 
cfg.write(f) 
f.close() 
+0

我忘了關閉文件。謝謝。是的,我正在閱讀現有文件。這就是爲什麼我要追加新值到文件。那麼我應該閱讀現有的文件並使用新值重新編寫它? – Ivan

+0

如果你用你的更新寫出配置文件,你以前的所有值都會存在,所以是的。 – apg

+0

正常工作與cfg文件更新:) – passionTime