Configparser und Windowspfade

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
nieselfriem
User
Beiträge: 135
Registriert: Sonntag 13. Januar 2013, 16:00

Hallo,

ich möchte ein Verzeichnispfad in einer Konfigdatei hinterlegen. Das habe ich wie folgt gemacht:

config.cfg

Code: Alles auswählen

[Connection]
user: "user"
password: "xxxxxxxxx"
balancer_url: "http://<ip>/bla"
hosts_a: "C:\Users\gegu\PycharmProjects\balancingTomcats\hosts_a.xml"
hosts_b: "C:\Users\gegu\PycharmProjects\balancingTomcats\hosts_b.xml"
Je nach dem mit welchem Commandline Parameter das Skript aufgerufen wird, soll der entsprechende Eintrag aus der config.cfg-datei aufgerufen werden.

Code: Alles auswählen

def choose_environment(env_input):
    if env_input not in env_list:
        sys.stderr.write("Diese Umgebung {0} gibt es nicht".format(env_input))
        sys.stderr.flush()
        return 2
    else:

        if env_input == "a":
            xml_doc=read_config()["hosts_a"]
         else:
            xml_doc=read_config()["hosts_b"]
       
        return xml_doc

Code: Alles auswählen

def read_config():
    config = ConfigParser.ConfigParser()
    config.read(config_file)
    dict1 = {}
    options = config.options("Connection")
    for option in options:
        try:
            dict1[option] = config.get("Connection", option)
            if dict1[option] == -1:
                print "skip: %s" % option
        except:
            print "exception on %s!" % option
            dict1[option] = None
    return dict1
Nun habe ich aber das Problem, dass die xml-Dateien nicht gefunden werden. Speicheere ich die Pfade in der config-datei mit"\" kommt die meldung "

Code: Alles auswählen

C:\\Users\\gegu\\PycharmProjects\\balancingTomcats\\hosts_b.xml
" kann nicht gefunden werden. Speichere ich sie mit "\\" ab kommt die Meldung "

Code: Alles auswählen

C:\\\\Users\\\\gegu\\\\PycharmProjects\\\\balancingTomcats\\hosts_b.xml
" kann nicht gefunden werden. Was muss ich machen, dass die gepeicherte Pfadangabe aus der Konfig-Datei richtig beim Lesen der xml-Datei ankommt?

Ich weiß nicht warum aber die Codebox mit Python-Syntaxhighligt hat nicht funktioniert. Deswegen habe ich die Quellcodes als Standart-Code gepostet.

Vielen Dank für die Hilfe

VG niesel
BlackJack

@nieselfriem: Hier wäre die *exakte* Fehlermeldung wichtig. So kann man nur raten. Und ich rate mal das das nichts mit Backslashes zu tun hat, sondern Du die Anführungszeichen weglassen solltest. Die sind Teil des Wertes, aber sicherlich nicht Teil des Dateinamens.
Benutzeravatar
nieselfriem
User
Beiträge: 135
Registriert: Sonntag 13. Januar 2013, 16:00

Die Anführungszeichen waren es. Verdammt! Wieso fällt einem die einfachsten Dinge bei manchen Versuchen nicht ein? :K

Danke und Gruß

niesel
Antworten