2013-01-14 101 views
3

我正在使用ConfigParser,我希望能夠得到一個空行的文本變量。 例如我的配置文件看起來像有沒有辦法讓配置文件中的值包含空行?

[config] 
text = hello 

    goodbye 

但是當我顯示的文字是

hello 
goodbye 

它忽略了空行。我想知道是否有添加\ n或東西的方式,以便它把一個空的空行有

* 編輯: *我試圖解析= SafeConfigParser(allow_no_value = TRUE)

我試圖把\ n在配置文件中,但只讀爲文本。

+0

你爲什麼要這麼做?可能還有另一種方法可以做到這一點,而不必依賴於ConfigParser(例如添加某種分隔符並用程序代碼中的換行符替換它) – asermax

+0

當從簡單的文本文件讀取時,我不應該這樣做。 – Siecje

回答

0

的get接口提供了可用於次優解決辦法解析器的嚴格的新線處理替換:

> cat test.cfg 
[test] 
test=one%(nl)stwo%(nl)sthree 

> cat test.py 
import ConfigParser 
c = ConfigParser.SafeConfigParser() 
c.read('test.cfg') 
print c.get('test','test', vars={"nl":"\n\n"}) 

> python test.py 
one 

two 

three 
0

\n是換行符的轉義碼。嘗試使用這些。

+0

[配置] 文本=您好 \ n 再見 顯示爲 你好 \ n 再見 – Siecje

+0

\ n被保存爲通過ConfigParser – DrSkippy

+0

字符串所以我看到... HTTP://pypi.python .org/pypi/configobj /可能是一個很好的選擇。我認爲Python 3的ConfigParser也引入了選項來解決這個問題。 –

相關問題