Seite 1 von 1

Strings in "" wollen nicht so wie ich will.

Verfasst: Dienstag 28. September 2010, 15:17
von nevergod
Guten Tag,

Mal wieder habe ich ein Problem.
Ich versuche gerade ein kleines Telefonbuchprogramm zu schreiben, scheitere aber schon an der Verzeichnisauswahl. (Und zwar soll der User zwischen verzeichnissen wählen können, indenen er Nummern lesen und abspeichern kann. Ausserdem soll der User verzeichnisse erstellen können.
Mein Problem ist das folgende. Normalerweise kann man strings in Texten ja wie folgt anzeigen:

Code: Alles auswählen

string = blabla
print "bleble %s" % string
#Output : bleble blabla
Mein Problem nun liegt irgendwo in diesem Codefragment :

Code: Alles auswählen

while True:
    try:
        verz= raw_input("Hier eingeben : ")
        x = open("bin/%s.txt",'r') % verz
        y = x.read()
    except:
         print "Bitte nur den Exakten Verzeichnisnamen eingeben!"
    else: 
         print y
         break
Wie man sehen kann will ich das der User den Namen des Verzeichnisses eingeben, und dann auf dieses zugegriffen wird. (alle sind im bin ordner).
Wenn ich das nun ausführe versucht er aber trotzdem auf " bin/%s.txt " zuzugreifen!

Was mache ich falsch? Lässt sich das sonst irgendwie anders lösen?

mfg. NeverGod

Re: Strings in "" wollen nicht so wie ich will.

Verfasst: Dienstag 28. September 2010, 15:20
von EyDu
Vielleicht solltest du die Formatierung besser auf den String anwenden und nicht auf das Datei-Objekt ;-)

Ein leeres "except" möchtest du übrigens nicht benutzen. Damit verbaust du dir lediglich die Fehlermeldungen und provozierst Fehler, welche nicht nachvollziehbar sind.

Re: Strings in "" wollen nicht so wie ich will.

Verfasst: Dienstag 28. September 2010, 15:34
von nevergod
EyDu hat geschrieben:Vielleicht solltest du die Formatierung besser auf den String anwenden und nicht auf das Datei-Objekt ;-)

Ein leeres "except" möchtest du übrigens nicht benutzen. Damit verbaust du dir lediglich die Fehlermeldungen und provozierst Fehler, welche nicht nachvollziehbar sind.
Bin glaube heute etwas zu doof für. Verstehe nicht ganz wie du das meinst.

Und danke für den Hinweis :)

Re: Strings in "" wollen nicht so wie ich will.

Verfasst: Dienstag 28. September 2010, 15:39
von cofi

Code: Alles auswählen

x = open("bin/%s.txt" % verz,'r')
oder

Code: Alles auswählen

filename = "bin/%s.txt" % verz
x = open(filename,'r')
Double Quotes sind aequivalent zu Single Quotes.

Re: Strings in "" wollen nicht so wie ich will.

Verfasst: Dienstag 28. September 2010, 15:41
von nevergod
Kopf -> Tisch
x = open("bin/%s.txt" % verz,'r')
Bin heute echt zu doof so offensichtlich :lol:

Vielen vielen Dank!

Re: Strings in "" wollen nicht so wie ich will.

Verfasst: Mittwoch 29. September 2010, 14:36
von mkesper
Das except darf nur die Fehler abfangen, die an der Stelle auch auftreten können (z.B. wenn die Datei nicht existiert). Ein except ohne weitere Abfragen schluckt ALLE Fehler.