2010-09-13 62 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

相关问题