我必须用这种结构打开一个文件

Date/time,Field1_avg,Field1_std,Field2_max,Field2_min,Field3_std,Field3_avg
2014-11-19 23:50:00,3.5,0,1,4.8,0.9,9.6,0.75
2014-11-20 23:50:00,4.5,0,1,4.3,0.9,9.1,0.75
2014-11-21 23:50:00,4.5,0,1,4.3,0.9,9.1,0.75
#MOREDATA and before the headers start a line empty
#line empty
[header]
name='blabla'
height=23
[header1]
#and so on


然后第一行是表字段的名称;

从表的第二行到不确定行的数据;

然后一行为空;

最后是带有信息的不同标题。

事情是读取文件,循环读取第一行,并创建一个带有熊猫的表。

然后从循环中退出,并使用默认值创建字典,因为信息与各节不同,我希望最后使用每个键具有相同数量值的字典。如果该部分中的值不存在,请添加''或0。

ConfigParser似乎是使用默认值创建字典的最佳解决方案,但问题是开头的信息。它不是标题,然后给出错误。

任何想法?

谢谢

最佳答案

Configparser具有您可以使用的.readfp()方法:

import ConfigParser

with open('cfgdata.ini', 'rb') as fp:
    while fp.readline().strip() != "":   # skip all initial lines (or pass them to Pandas..)
        pass

    p = ConfigParser.ConfigParser()
    p.readfp(fp)
    print p.sections()
    print p.has_section('header')


唯一的问题是,while循环需要使用fp.readline(),因为这是内部使用的ConfigParser

关于python - 头不在文件开头时,是否可以使用ConfigParser?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33053858/

10-11 22:32
查看更多