Neue Zeilen mit ConfigParser?
Habe ich eine config-Datei mit configParser
:
<br>
[ section one ]<br>
one = Y,Z,X <br><br>
[EG 2]<br>
ias = X,Y,Z<br>
Mein Programm funktioniert einwandfrei Lesen und verarbeiten dieser Werte.
Jedoch einige der Abschnitte werden Recht groß. Ich brauche eine config-Datei, damit die Werte in eine neue Zeile, wie diese:
[EG SECTION]<br>
EG=<br>
item 1 <br>
item 2 <br>
item 3<br>
etc...
In meinem code habe ich eine einfache Funktion, die ein Trennzeichen (oder separator) der Werte mit string.split()
offensichtlich jetzt Komma. Ich habe versucht, die escape-Zeichenfolge \n
die nicht.
Weiß jemand, ob das möglich ist mit python-config-parser?
http://docs.python.org/library/configparser.html
# We need to extract data from the config
def getFromConfig(currentTeam, section, value, delimeter):
cp = ConfigParser.ConfigParser()
fileName = getFileName(currentTeam)
cp.read(fileName)
try:
returnedString = cp.get(section, value)
except: # The config file could be corrupted
print( "Error reading " + fileName + " configuration file." )
sys.exit(1) #Stop us from crashing later
if delimeter != "": # We may not need to split
returnedList = returnedString.split(delimeter)
return returnedList
Ich würde für diese:
taskStrings = list(getFromConfig(teamName, "Y","Z",","))
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den ConfigParser
_read()
Methode docstring sagt:Oder alternativ (wie die version in Python 3 bringt es):
Diese Funktion bietet eine Möglichkeit, die geteilten Werte und "weiter", dass Sie sich über mehrere Zeilen. Zum Beispiel, sagen, Sie hätten eine config-Datei mit dem Namen
'test.ini'
die enthalten:Du Lesen könntest den Wert
EG
imEG SECTION
in eine Liste mit code wie diesem:configparser
Modul unterstützt keine verschachtelten Abschnitten, wenn es das ist was du meinst. Zusätzlich werden die Werte, die es gibt, sind immer Zeichenketten, also ist es mir unklar was du machen willst und fragst nach.ConfigObj
, dass verschachtelte Abschnitte (sowie viele andere Dinge). Jedoch nicht verwenden Sie Leerzeichen, um anzuzeigen, das nesting — obwohl Sie einige in, wenn Sie wollen. Verschachtelte section-Namen müssen nur extra Klammern um Sie herum. also[[sub-section]]
.Scheint es möglich. In meiner eigenen config-Datei, zum Beispiel, habe ich ein list-Objekt mit Tupeln:
und ich:
beachten Sie, dass ich bin eigentlich eval ' Ing, dass die Linie, die kann dazu führen, Sicherheitslücken, wenn Sie in der wildnis.
eval
mitast.literal_eval
, es sei denn, du bist damit der Anwender die Eingabe-Objekte, die nicht einfache python-Objekte (dictionaries, strings, Listen, Tupel, floats und integers).