2016-11-19 3 views
0

Meine ini-Datei zurück:

[1] 

[4] 

[5] 

[6] 

[9] 

[1] 

[1] 

Mein Python Script

import configparser 
config = configparser.ConfigParser() 
config.readfp(open('inifile.ini')) 
print config.sections() 

>>> ['1', '4', '5', '6', '9'] #where are two more '1' ? 

Wie alle Ist-Werte erhalten? Configparser muss verwendet werden.ConfigParser in Python does't alle Abschnitte mit dem gleichen Namen

+0

ConfigParser nicht mehrere Abschnitte des gleichen Namens unterstützen, finden Sie eine Abhilfe hier: http://stackoverflow.com/ q/9876059/1781026 – chrki

Antwort

1

In ConfigParser sind Abschnitte eindeutig. Es speichert die Abschnitte in map(). Daher sollten sie einzigartig sein.

Gemäß der ConfigParser document:

Die ConfigParser Klasse implementiert eine Basiskonfiguration Dateiparser Sprache, die eine Struktur ähnlich sieht, was Sie auf Microsoft Windows INI-Dateien finden würde.

Gemäß der INI Files wiki:

In einigen Implementierungen Duplikatsabschnitte einfach ihre Eigenschaften miteinander verschmelzen, als ob sie zusammenhängend aufgetreten. Andere können einen Teil der INI-Datei abbrechen oder ignorieren.

0

Ihre conf-Datei sollte sowohl mit Abschnittsname als auch mit Abschnittswert definiert sein. ini-Datei:

[database] 
host = www.examle.com 
port = 1234 

Und versuchen Wert mit get-Methode zu lesen:

import configparser 
config = configparser.ConfigParser() 
config.readfp(open('inifile.ini')) 

host = config.get('database', 'host') 
port = config.getint('database', 'port') 
Verwandte Themen