komischer Fehler

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
dodo
User
Beiträge: 73
Registriert: Mittwoch 10. November 2010, 13:43

Ich habe ein Programm geschrieben. An sich funktioniert es(laut Idle), aber wenn ich das ganze mit einem Doppelklick auf die Datei öffne bekomme ich eine Fehlermeldung, das die Variable "test" nicht definiert ist, wenn ich "test" eingebe.
Hier mein Code:

Code: Alles auswählen

import os
clear = lambda: os.system('cls')
try: #try und except sind hier nur, damit ich den Error sehen kann.
    import time
    import sys
    name = input("Name>")
    a = open(name+"1.txt")
    b = int(a.read())
    a.close()
    c = opem(name+"2.txt")
    d = 1 / int(c.read())
    c.close()
    clear()
    for i in range(int(b)):
        e = open(name+"_"+i+".txt")
        print(e.read())
        e.close()
        time.sleep(d)
        clear()
except Exception as inst:
    import time
    print(inst)
    time.sleep(2)
Die Fehlermeldung sieht wie folgt aus: "name ' " hier kommt das, was ich eingegeben habe, " ' is not defined."

Vielen Dank für jede Hilfe,

dodo
Geht nicht gibts nicht(Das gilt auch für Python)!
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Unter Python 2.x ist input() die Eingabe von Python-Code, für die Eingabe einer Zeichenkette muss man raw_input() verwenden.

Warum importierst du an verschiedenen Stellen? Importe gehören an den Anfang des Scripts und nicht irgendwo in den Quelltext.
Öffne Dateien mit den width-Blöcken, dann brauchst du dich um das schließen nicht zu kümmern.
Der try-Block ist sehr verunglückt. Wenn man den alle Exceptions abfängt, kann man sich das auch direkt schenken.
Benutzeravatar
dodo
User
Beiträge: 73
Registriert: Mittwoch 10. November 2010, 13:43

Ich habe aber 3.3 ...
Geht nicht gibts nicht(Das gilt auch für Python)!
Benutzeravatar
dodo
User
Beiträge: 73
Registriert: Mittwoch 10. November 2010, 13:43

Ich habe jetzt input mit raw_input ersetzt und es funktioniert. Vielleicht hängt der Fehler daran, dass ich 2.7 noch von "früher" installiert hab.
Ich deinstalliere es mal, vielleicht funktioniert es dann...
Geht nicht gibts nicht(Das gilt auch für Python)!
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Der Fehler liegt daran, dass offensichtlich der falsche Interpreter gestartet wird.
Rudimentär sollte man mit dem Betriebssystem und der Kommandozeile umgehen können, sonst kommt es immer wieder zu Problemen, die nicht in der Programmiersprache zu suchen sind.
Benutzeravatar
dodo
User
Beiträge: 73
Registriert: Mittwoch 10. November 2010, 13:43

Mit neu installieren kann ich die Datei nicht mehr öffnen :(
Aber ich kenn Aushilfe: Einfach Dateityp neu verknüpfen.
Und ich weiß jetzt dadurch auch, warum das ganze nicht funktioniert hat: Der Dateityp ".py" war mit Python 2.7 und nicht mit Python 3.3 verknüpft.

Nun kommt aber ein weiteres Problem:Wein Windows XP hat keine Lust die Dateiendung ".pyw" mit pythonw.exe zu verbinden.
Geht nicht gibts nicht(Das gilt auch für Python)!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Und statt dieses grausigen try-except-Konstruktes kannst du auch einfach das Skript in einer Konsole starten, dann siehst du die Ausgaben auch, ohne dass du so eine fehleranfällige und kaputte Konstruktion in deinem Code hast.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten