我必须用这种结构打开一个文件
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/