Seite 1 von 1

ConfigParser Problem

Verfasst: Sonntag 3. Januar 2010, 14:40
von schwedenmann
Hallo

hab von hier
http://docs.python.org/library/configpa ... nfigParser

das Beispiel kopiert und bekomme anch der Ausführung immer Syntax Fehler line32

#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import sys
import subprocess, popen2
import md5
import os.path
import distutils.util
import ConfigParser
import shutil
#
#
config = ConfigParser.RawConfigParser()

# When adding sections or items, add them in the reverse order of
# how you want them to be displayed in the actual file.
# In addition, please note that using RawConfigParser's and the raw
# mode of ConfigParser's respective set functions, you can assign
# non-string values to keys internally, but will receive an error
# when attempting to write to a file or when you get it in non-raw
# mode. SafeConfigParser does not allow such assignments to take place.
config.add_section('Section1')
config.set('Section1', 'int', '15')
config.set('Section1', 'bool', 'true')
config.set('Section1', 'float', '3.1415')
config.set('Section1', 'baz', 'fun')
config.set('Section1', 'bar', 'Python')
config.set('Section1', 'foo', '%(bar)s is %(baz)s!')

# Writing our configuration file to 'example.cfg'
with open('/extras/programmieren/example.cfg', 'wb') as configfile:
config.write(configfile)
Ich weiß nicht, wieso der Fehler kommt und das example.cfg nicht geschrieben wird, hab eine leere Datei example.cfg sogar schon im Verzeichnis angelegt und entsprechende Rechte vergeben.

mfg und und ein gutes neues jahr
schwedenmann
[/quote]

Verfasst: Sonntag 3. Januar 2010, 14:43
von Trundle
Wenn du Python 2.5 benutzt, fehlt da ein __future__-Import (``from __future__ import with_statement``).

Verfasst: Sonntag 3. Januar 2010, 14:50
von cofi
*sing* Where have all the code tags gone? *sing*

Nachfrage zur Reihenfolge innerhalb der config

Verfasst: Sonntag 3. Januar 2010, 16:04
von schwedenmann
Hallo

beispiel klappt jetzt, Zusatzfrage, in der beschreigung zu configParser, steht, daß die Punkte innerhalb der Config, im Pythonscript in umgekehrter Reihenfolge geschrieben werden müssen.

Ich erhalte wenn ich das beispiel ausführe
[Section1]
bar = Python
int = 15
float = 3.1415
baz = fun
bool = true
foo = %(bar)s is %(baz)s!
laut Beispiel sollte aber das dabei rauskommen (Reihenfolge)
foo
bar
baz
float
bool
int

mfg
schwedenmann

Re: Nachfrage zur Reihenfolge innerhalb der config

Verfasst: Sonntag 3. Januar 2010, 16:10
von Hyperion
schwedenmann hat geschrieben: Zusatzfrage, in der beschreigung zu configParser, steht, daß die Punkte innerhalb der Config, im Pythonscript in umgekehrter Reihenfolge geschrieben werden müssen.
Wo steht denn das? Vielleicht kannste die Stelle mal verlinken?

Zusatzfrage: Was stört Dich daran?

Reihenfolge in Config

Verfasst: Sonntag 3. Januar 2010, 16:18
von schwedenmann
Hallo
add them in the reverse order of
# how you want them to be displayed in the actual file.
So steht es im Kommentar zu dem Beispiel, das ich kpiert habe, steht übrigens in meinem oberen post im Quellcode.

Es stört nicht, nur ich frage mcih, warum dann in der Beschreibung etwas davon steht, die Reihenfolge im Code umzudrehen, damit bei der Ausgabe im Config-file die Reihenfolge xyz erscheinen soll.

mfg
schwedenmann

Re: Reihenfolge in Config

Verfasst: Sonntag 3. Januar 2010, 17:11
von /me
schwedenmann hat geschrieben:
add them in the reverse order of
# how you want them to be displayed in the actual file.
So steht es im Kommentar zu dem Beispiel, das ich kpiert habe, steht übrigens in meinem oberen post im Quellcode.
Diese Aussage steht da tatsächlich und sie ist falsch.

Weiter oben auf der Seite steht nämlich "Sections are normally stored in a built-in dictionary." und damit ist die Reihenfolge schon nicht mehr garantiert.

Re: Reihenfolge in Config

Verfasst: Sonntag 3. Januar 2010, 17:31
von Hyperion
/me hat geschrieben: Weiter oben auf der Seite steht nämlich "Sections are normally stored in a built-in dictionary." und damit ist die Reihenfolge schon nicht mehr garantiert.
Das hatte mich auch irritiert. Da die Aussage aber auch "nur" im Kommentar in den Code-Snippets steht, scheint sie deprecated zu sein nehme ich mal an.