簡體   English   中英

讀取配置文件Python時出現ConfigParser.MissingSectionHeaderError

[英]ConfigParser.MissingSectionHeaderError when reading config file Python

我正在嘗試在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'

怎么了?

由於某些原因,您正在執行以下操作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM