2011-04-18 89 views
1

我們使用一個基於Python應用程序,它讀取包含幾個陣列的配置文件:配置文件的輸出蟒成蟒可讀格式

實施例佈局:

array1 = [ 
'bob', 
'sue', 
'jayne' 
] 

目前改變爲配置是手工完成的,但我已經寫了一個簡化流程的接口(主要是爲了避免錯誤)。

它目前使用簡單的「導入」讀入現有配置。然而,我不知道該怎麼做,是讓我的腳本將它的輸出寫入有效的python,以便主應用程序可以再次讀取它。

我怎樣才能轉儲數組回到文件,但在有效的Python?

乾杯!

回答

2

通常使用再版()將創建可以重新avaluated的字符串。但是pprint會輸出更好的輸出。

from pprint import pprint 

outf.write("array1 = "); pprint(array1, outf) 
+0

我只是追加以下內容:要將字符串讀回爲有效的python,請使用eval()。 – mdec 2011-04-18 11:27:33

+0

是或execfile。 – Keith 2011-04-18 11:28:48

+0

只是工作 - 歡呼聲。 – Coops 2011-04-18 11:40:18

1

repr(array1)(並寫入文件)將是一個非常簡單的解決方案,但它應該在這裏工作。

3

對於配置文件,我建議JSONYAML(比JSON冗長)。這樣,配置文件變得對較少pythonate更具可讀性;)拋出足夠的錯誤也更容易,例如,如果配置不完整。

要保存Python對象,你可以隨時使用pickle