Python 当文件头不在文件开头时,是否可以使用ConfigParser?

Python 当文件头不在文件开头时,是否可以使用ConfigParser?,python,dictionary,collections,configparser,Python,Dictionary,Collections,Configparser,我必须用这种结构打开一个文件 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

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

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
然后第一行是表中字段的名称

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

然后一行空

最后是包含信息的不同标题

问题是读取文件,在循环中读取第一行,然后创建一个带有pandas的表

然后退出循环,创建带有默认值的字典,因为信息与小节不同,我希望在最后有一个字典,每个键具有相同数量的值。如果节中的值不存在,请添加“”或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
内部使用的