我有一个包含以下内容的配置文件/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]
部分,它显然会读取配置文件。因此,我对导致此错误的原因感到茫然。
答案 0 :(得分:2)
文档明确指出(强调我的):
Signature: config.read(filenames, encoding=None)
文档字符串: 读取并解析文件名或文件名列表。
无声打开的文件会被忽略;这是 旨在让您指定潜在的清单 配置文件位置(例如当前目录,用户的 主目录,系统目录),以及所有现有的 将读取列表中的配置文件。单身 文件名也可以给出。
Python无法找到该文件。
在文件的开头添加:
import os
assert os.path.exists('/tools/inputs/masterinputs.txt')
如果超过这些行,则应该看到输出,前提是文件包含显示的内容。
顺便说一句,你可以使用:maplat = config.getfloat('myvars', "maplat")
检索浮动。