ConfigParser.MissingSectionHeaderError在读取配置文件Python时出错

ConfigParser.MissingSectionHeaderError在读取配置文件Python时出错,python,configparser,Python,Configparser,我试图使用Python中的ConfigParser从配置文件params.txt中读取一些值,但不断收到MissingSectionHeadError 我有一个params.txt文件: [all] zigzag = 0.08 fractal = 0.03 rng_length = 1000 stp = 100 以及以下代码: parser = cp.SafeConfigParser() g = open(params, 'r') g.readline() parser.readfp(g) p

我试图使用Python中的ConfigParser从配置文件params.txt中读取一些值,但不断收到MissingSectionHeadError

我有一个params.txt文件:

[all]
zigzag = 0.08
fractal = 0.03
rng_length = 1000
stp = 100
以及以下代码:

parser = cp.SafeConfigParser()
g = open(params, 'r')
g.readline()
parser.readfp(g)
print parser.getfloat('all', zigzag)
我在哪里得到这个错误:

Traceback (most recent call last):
  File "deadrabbit_console_0-1.py", line 166, in <module>
    DRconsole().cmdloop()
  File "/usr/lib/python2.7/cmd.py", line 142, in cmdloop
    stop = self.onecmd(line)
  File "/usr/lib/python2.7/cmd.py", line 221, in onecmd
    return func(arg)
  File "deadrabbit_console_0-1.py", line 127, in do_load_data
    get_data(series, params)
  File "deadrabbit_console_0-1.py", line 115, in get_data
    parser.readfp(g)
  File "/usr/lib/python2.7/ConfigParser.py", line 324, in readfp
    self._read(fp, filename)
  File "/usr/lib/python2.7/ConfigParser.py", line 512, in _read
    raise MissingSectionHeaderError(fpname, lineno, line)
ConfigParser.MissingSectionHeaderError: File contains no section headers.
file: /home/baconwichsand/Documents/Dead Rabbit/params.txt, line: 1
'zigzag = 0.08\n'
回溯(最近一次呼叫最后一次):
文件“deadrabbit_console_0-1.py”,第166行,中
DRconsole().cmdloop()
文件“/usr/lib/python2.7/cmd.py”,第142行,在cmdloop中
停止=self.onecmd(行)
onecmd中的文件“/usr/lib/python2.7/cmd.py”,第221行
返回函数(参数)
do_load_数据中的文件“deadrabbit_控制台_0-1.py”,第127行
获取数据(系列、参数)
get_数据中第115行的文件“deadrabbit_控制台_0-1.py”
parser.readfp(g)
文件“/usr/lib/python2.7/ConfigParser.py”,第324行,在readfp中
自读(fp,文件名)
文件“/usr/lib/python2.7/ConfigParser.py”,第512行,已读
升起缺失节头错误(fpname、lineno、line)
ConfigParser.MissingSectionHeaderError:文件不包含节头。
文件:/home/baconwichsand/Documents/Dead Rabbit/params.txt,第1行
'之字形=0.08\n'

怎么了?

出于某种原因,您正在执行以下操作:

g.readline()
将文件传递到
readfp
之前。这将读取包含
[all]
的行,因此当
SafeConfigParser
读取文件时,它将不会读取节头,您将收到该错误。要修复它,只需不调用
readline()

In [4]: parser = cp.SafeConfigParser()
   ...: with open('data.ini', 'r') as g:
   ...:     parser.readfp(g)
   ...: print(parser.getfloat('all', 'zigzag'))
0.08