Hi,
gibt es eine Möglichkeit den ConfigParser ohne [Section's] arbeiten zu lassen. Ich habe hier eine Config-File (doxygen-conf) die ich gerne so einfach bearbeiten würde, wie ich es vom ConfigParser gewohnt bin. Diese besitzt leider keine [Section] sondern nur "Option = Parameter" und lässt sich daher von mir nicht einlesen.
Bin über jede Hilfe oder andere Lösungs-Vorschläge dankbar.
Gruß Zack
ConfigParser ohne [Section]
Nimm ConfigObj. Das hat auch eine angenehmere API und ist mächtiger.
Code: Alles auswählen
from configobj import ConfigObj
# repräsentiert die Zeilen einer Konfigurationsdatei (wie bei file.readlines)
lines = ['foo = bar\n',
'test = 1\n']
config = ConfigObj(lines)
print config['foo'] # gibt bar aus
print config['test'] # gibt 1 aus
Hey lunar,
coole Sache, genau das was ich suche. Aber leider hab ich damit ein paar Probleme. In der Doku heißt es:
Leider ist da der Wurm drin, denn bei dem Aufruf schmiert's mir sofort ab
Folgendes habe ich versucht:
Error:
Die testfile ist vorhanden und im selben Ordner. Auch mit abspath keine Chance.
Ich kann mir leider nicht erklären woran das liegt.
Gruß Zack
coole Sache, genau das was ich suche. Aber leider hab ich damit ein paar Probleme. In der Doku heißt es:
Code: Alles auswählen
from configobj import ConfigObj
config = ConfigObj(filename)
#
value1 = config['keyword1']
Folgendes habe ich versucht:
Code: Alles auswählen
from configobj import ConfigObj
config = ConfigObj("testfile")
Code: Alles auswählen
Traceback (most recent call last):
File "<string>", line 192, in run_nodebug
File "C:\wrun2\doxygen\2.py", line 3, in <module>
config = ConfigObj("Doxyfile")
File "C:\wrun2\doxygen\configobj.py", line 1252, in __init__
raise error
configobj.ConfigObjError: Parsing failed with several errors.
First error at line 14.
Ich kann mir leider nicht erklären woran das liegt.
Gruß Zack
Der Traceback passt nicht zum Beispielcode. Der Beispielcode lädt "testfile", der Traceback deutet aber auf "Doxyfile" hin.
Ich halte mich mal an den Traceback, der sagt, dass die Konfigurationsdatei kein gültiges Format besitzt. Der erste Fehler wurde in Z 14 der Konfigurationsdatei gefunden. Allerdings steht das alles deutlich im Traceback...
Doxyfile ist offenbar keine gültige INI-Datei.
Näheres kann ich ohne die Konfigurationsdatei nicht sagen.
Nächstes mal solltest du übrigens tunlichst darauf achten, dass der gepostete Beispielcode auch zum Traceback passt.
Ich halte mich mal an den Traceback, der sagt, dass die Konfigurationsdatei kein gültiges Format besitzt. Der erste Fehler wurde in Z 14 der Konfigurationsdatei gefunden. Allerdings steht das alles deutlich im Traceback...
Doxyfile ist offenbar keine gültige INI-Datei.
Näheres kann ich ohne die Konfigurationsdatei nicht sagen.
Nächstes mal solltest du übrigens tunlichst darauf achten, dass der gepostete Beispielcode auch zum Traceback passt.
Doxyfile war meine testfile. Hier mal ein Ausschnitt:
Code: Alles auswählen
# Doxyfile 1.5.3
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = XXXPROJECT_NAMEXXX
PROJECT_NUMBER = XXXPROJECT_NUMBERXXX
OUTPUT_DIRECTORY = XXXOUTPUT_DIRECTORYXXX
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = XXXOUTPUT_LANGUAGEXXX
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class " \
"The $name widget " \
"The $name file " \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
Das kann ConfigObj nicht lesen. Der Umbruch in Zeile 14 ff ist aus Sicht von ConfigObj ungültig. ConfigObj bricht anders um, nämlich ohne \ und mit anderer Einrückung.