Strings in "" wollen nicht so wie ich will.

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
nevergod
User
Beiträge: 46
Registriert: Mittwoch 22. September 2010, 13:22

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
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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.
Das Leben ist wie ein Tennisball.
nevergod
User
Beiträge: 46
Registriert: Mittwoch 22. September 2010, 13:22

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 :)
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
nevergod
User
Beiträge: 46
Registriert: Mittwoch 22. September 2010, 13:22

Kopf -> Tisch
x = open("bin/%s.txt" % verz,'r')
Bin heute echt zu doof so offensichtlich :lol:

Vielen vielen Dank!
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

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.
Antworten