首页 > 解决方案 > Configparser 中的 INI 键作为多路径错误

问题描述

我有带有服务器路径和本地路径的 INI 文件,我只需要键作为列表而不是值。

服务器路径,工作正常......在本地路径中,所有 6 个都是相同的 'C 但不是我在 ini 文件的关键字段中提到的完整路径

注意:我需要 Key 单独作为两个部分的 List ...

我的档案:

[Server]
//rotork.co.uk\files\ES-LEZO\TESTRIG-DATA\Data\EF1\Database\Test-results.mdb = SS Database 1
//rotork.co.uk\files\CN-SHANGHAI\TESTRIG-DATA\Data\CF1\Database\Test-results.mdb = RAS Database 1
//rotork.co.uk\files\CN-SHANGHAI\TESTRIG-DATA\Data\CF2\Database\Test-results.mdb = RAS Database 2
//rotork.co.uk\files\CN-SHANGHAI\TESTRIG-DATA\Data\CF3\Database\test-results.mdb = RAS Database 3
//rotork.co.uk\files\CN-SHANGHAI\TESTRIG-DATA\Data\CF4\Database\Test-results.mdb = RAS Database 4
//rotork.co.uk\files\CN-SHANGHAI\TESTRIG-DATA\Data\CF5\Database\Test-results.mdb = RAS Database 5
[Local]
C://SVN//CKMotorData//Data//Test-results_EF1.mdb = SS Database 1
C://SVN//CKMotorData//Data//Test-results_CF1.mdb = RAS Database 1
C://SVN//CKMotorData//Data//Test-results_CF2.mdb = RAS Database 2
C://SVN//CKMotorData//Data//Test-results_CF3.mdb = RAS Database 3
C://SVN//CKMotorData//Data//Test-results_CF4.mdb = RAS Database 4
C://SVN//CKMotorData//Data//Test-results_CF5.mdb = RAS Database 5

我需要所有 Local Section 键作为列表。

服务器部分按此代码工作

config = configparser.ConfigParser()
config.read(Configurations.ini")
MDBList = []
for key in dict(config.items('Server'): #get all keys in a section
    MDBList.append(key)

本地引发错误

[line 16]: option '"c' in section 'MDBLocal' already exists

标签: pythonpython-3.xiniconfigparser

解决方案


您的问题是由:文件名中的 引起的,
因为 configparser 将其默认分隔符设置为delimiters=("=", ":")
- 请参阅https://docs.python.org/3/library/configparser.html#configparser-objects了解更多信息。

明确设置分隔符应该适合您。

import configparser
config = configparser.ConfigParser(delimiters=('=',))
config.read_string(ini)

for key in dict(config.items('Local')):
    print(key)
    
# c://svn//ckmotordata//data//test-results_ef1.mdb
# c://svn//ckmotordata//data//test-results_cf1.mdb
# c://svn//ckmotordata//data//test-results_cf2.mdb
# c://svn//ckmotordata//data//test-results_cf3.mdb
# c://svn//ckmotordata//data//test-results_cf4.mdb
# c://svn//ckmotordata//data//test-results_cf5.mdb

推荐阅读