2010-09-13 60 views
1

我正在尋找一種方法來解析可讀(即不是二進制)的數據文件與節。是否有Python包來解析可讀數據文件和節

我一直在使用ConfigObj來讀取配置文件(INI文件?),但我遇到了多行列表的問題。具體來說,ConfigObj不允許列表成員包含回車符。換句話說,下面未能解析:

[section] 
data = [(1, 0.1), 
     (2, 0.2), 
     (3, 0.3)] 

卸下回車修復問題

[section] 
data = [(1, 0.1), (2, 0.2), (3, 0.3)] 

很顯然,我可以用這個簡單的解決方法,但是當數據擴展可讀性顯著遭受超越一條線。是否有可用的替代配置文件解析器?

另外,是否有部分csv文件的解析器?例如,可以解析的東西

[data1] 
1, 0.1 
2, 0.2 
3, 0.3 

[data2] 
1, 0.1 
2, 0.2 
3, 0.3 

我認爲是JSON文件,但我對數據文件的外觀並不滿意。

注意:1,2,3列僅供說明:它不是我的意圖來保存行號。

回答

3

看看YAML文件。有一個名爲pyyaml的Python模塊來讀取這些模塊。我發現YAML非常可讀。

+0

謝謝,我已經遇到YAML過,但從來沒有嘗試過的。我能夠很容易地完成並運行一個簡單的數據集。 – 2010-09-13 16:02:01

2

ConfigParser是另一種標準庫模塊,它應該讓你閱讀的文件是這樣的:

[section] 
data = 
    row1, 1, 2 
    row2, 2, 3 
    row3, 3, 4 
+0

謝謝!你是對的,ConfigParser確實按照你的建議工作。按照Jim和Radomir的建議,我最終與YAML一起(他們是第一個:)。另外,我對ConfigParser接口有一些挑剔的煩惱(這就是我使用ConfigObj的原因)。 – 2010-09-13 16:06:57

+0

幸運的是ConfigParser正在開發和改進之中,所以你的煩惱可能會在幾個月後消失(在python版本變得流行之前的幾年)。 – 2010-09-13 17:19:47

相關問題