Seite 1 von 1

Configparser und Windowspfade

Verfasst: Freitag 11. März 2016, 15:58
von nieselfriem
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

Re: Configparser und Windowspfade

Verfasst: Freitag 11. März 2016, 16:11
von 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.

Re: Configparser und Windowspfade

Verfasst: Freitag 11. März 2016, 16:14
von nieselfriem
Die Anführungszeichen waren es. Verdammt! Wieso fällt einem die einfachsten Dinge bei manchen Versuchen nicht ein? :K

Danke und Gruß

niesel