configparser.NoSectionError:没有部分:' myvars'

时间:2016-01-02 20:24:32

标签: python python-3.x config

我有一个包含以下内容的配置文件/tools/inputs/masterinputs.txt

[myvars]
maplat: 32.636004
maplon: -115.437702

我使用configparser来阅读它:

import configparser

config = configparser.ConfigParser()              
config.read("/tools/inputs/masterinputs.txt")
maplat = float(config.get("myvars", "maplat"))

但我收到此错误消息:

root@Primerpi:/tools# python3 solarrobot7-core.py

Traceback (most recent call last):
  File "/usr/lib/python3.2/configparser.py", line 1109, in _unify_values
    sectiondict = self._sections[section]
KeyError: 'myvars'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "solarrobot7-core.py", line 33, in <module>
    maplat = float(config.get("myvars", "maplat"))
  File "/usr/lib/python3.2/configparser.py", line 771, in get
    d = self._unify_values(section, vars)
  File "/usr/lib/python3.2/configparser.py", line 1112, in _unify_values
    raise NoSectionError(section)
configparser.NoSectionError: No section: 'myvars'

该文件包含[myvars]部分,它显然会读取配置文件。因此,我对导致此错误的原因感到茫然。

1 个答案:

答案 0 :(得分:2)

文档明确指出(强调我的):

Signature: config.read(filenames, encoding=None)
     

文档字符串:   读取并解析文件名或文件名列表。

     

无声打开的文件会被忽略;这是   旨在让您指定潜在的清单   配置文件位置(例如当前目录,用户的   主目录,系统目录),以及所有现有的   将读取列表中的配置文件。单身   文件名也可以给出。

Python无法找到该文件。

在文件的开头添加:

import os

assert os.path.exists('/tools/inputs/masterinputs.txt')

如果超过这些行,则应该看到输出,前提是文件包含显示的内容。

顺便说一句,你可以使用:

maplat = config.getfloat('myvars', "maplat")

检索浮动。