![](/img/trans.png)
[英]Python: ConfigParser.NoSectionError: No section: 'TestInformation'
[英]Python ConfigParser.NoSectionError: No section:
我不断收到 ConfigParser.NoSectionError: No section:'file' 错误
我的配置文件如下所示:
[file]
api_access_id = 123445567
api_default_org = NAME
api_secret_key = kjvhkd28unfkjs
api_base_url = www.fakeurl.com/api
我的代码看起来像:
config = ConfigParser.RawConfigParser()
configFilePath = 'E:\Python\configfile\test.txt'
config.read(configFilePath)
try:
api_access_id = config.get('file', 'api_access_id')
api_secret_key = config.get('file', 'api_secret_key')
api_default_org = config.get('file', 'api_default_org')
api_base_url = config.get('file', 'api_base_url')
except ConfigParser.NoOptionError :
print('could not read configuration file')
sys.exit(1)
错误是:
Traceback (most recent call last):
File "E:/Python/Testapi.py", line 13, in <module>
api_access_id = config.get('file', 'api_access_id')
File "C:\Python27\lib\ConfigParser.py", line 330, in get
raise NoSectionError(section)
ConfigParser.NoSectionError: No section: 'file'
Process finished with exit code 1
有谁知道可能导致此问题的原因是什么?
你用反斜杠定义你的路径:
configFilePath = 'E:\Python\configfile\test.txt'
这些被解释为转义,因此没有加载正确的文件。 (不幸的是,错误消息对此实例没有多大帮助。)您需要转义它们,或者使用原始字符串:
configFilePath = r'E:\Python\configfile\test.txt'
我多次遇到同样的问题。 大多数时候,这是由于路径错误。 在这种情况下,它不会显示文件是否已找到。 它只是给出了找不到该部分的错误。
所以我得出的结论是,始终建议使用 os.path.join() 获取根目录并加入路径
这是代码。
import os
from pathlib import Path
import configparser
path = Path(__file__)
ROOT_DIR = path.parent.absolute()
config_path = os.path.join(ROOT_DIR, "config.ini")
config = configparser.ConfigParser()
config.read(config_path)
try:
api_access_id = config.get('file', 'api_access_id')
api_secret_key = config.get('file', 'api_secret_key')
api_default_org = config.get('file', 'api_default_org')
api_base_url = config.get('file', 'api_base_url')
except ConfigParser.NoOptionError :
print('could not read configuration file')
sys.exit(1)
和你的配置文件:
[file]
api_access_id = 123445567
api_default_org = NAME
api_secret_key = kjvhkd28unfkjs
api_base_url = www.fakeurl.com/api
将文件网址更改为
configFilePath = 'test.txt'
因为我的文件已经在我的应用程序的文件夹中
是的,您的文件路径读取错误,因为'\\'之后的每个字符都在Python中转义。 而是这样做:
configFilePath = 'E:\\Python\\configfile\\test.txt'
或这个:
configFilePath = 'E:/Python/configfile/test.txt'
由于路径长度(> 256),我收到此错误
它通过提供绝对路径得到解决
import os
thisfolder = os.path.dirname(os.path.abspath(__file__))
initfile = os.path.join(thisfolder, 'you_file_name.init')
# print thisfolder
config = RawConfigParser()
res = config.read(initfile)
data = config.get('section_name', 'variable_name')
configFilePath ='E:\\ Python \\ configfile \\ test.txt'不正确,因此找不到该文件。
将代码修改为类似的内容,以捕获此类错误。
import ConfigParser, sys
config = ConfigParser.RawConfigParser()
configFilePath = './config.cfg'
try:
config.read(configFilePath)
except Exception as e :
print(str(e))
try:
api_access_id = config.get('file', 'api_access_id')
api_secret_key = config.get('file', 'api_secret_key')
api_default_org = config.get('file', 'api_default_org')
api_base_url = config.get('file', 'api_base_url')
except Exception as e :
print(str(e),' could not read configuration file')
print api_access_id, api_secret_key, api_default_org, api_base_url
sys.exit()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.