Seite 1 von 1

Fehler beim Speichern

Verfasst: Sonntag 18. September 2005, 21:40
von da3m0n
Hi
ich habe ein Problem beim speichern;
bei bestimmten Programmen meldet mir die Python Shell das hier:

Code: Alles auswählen

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Programme\Python\lib\lib-tk\Tkinter.py", line 1292, in __call__
    return apply(self.func, args)
  File "C:\PROGRA~1\Python\Tools\idle\IOBinding.py", line 136, in save_as
    if self.writefile(filename):
  File "C:\PROGRA~1\Python\Tools\idle\IOBinding.py", line 154, in writefile
    f.write(chars)
UnicodeError: ASCII encoding error: ordinal not in range(128)
Das Programm wird dann auch nicht gespeichert, hier einmal ein beispielprogramm bei welchem der Fehler auftritt:

Code: Alles auswählen

#erzeugen der Listen hilfsvariablen
end = 1 
Liedersammlung = []
Playlist = []

def sortieren(Liedersammlung):
    print "sortieren"

def auswahl(Liedersammlung, Playlist):
    print "auswahl"

def abspielen(Playlist):
    print "abspielen"


#Speichern der Lieder
for i in range(0,200,1):
    Liedersammlung.insert(i,["Lied %s" %(i+1), 0, 0])#1.Element ist der Liedname
                                                     #2.Element wie häufig es schon gespielt wurde
                                                     #3.Element momentan in PLaylist (1 ja / 0 nein)   
while end = 1:
    sortiere(Liedersammlung)
    auswahl(Liedersammlung, Playlist)
    abspielen(Playlist)
    print 'Wenn sie erneut hören wollen geben sie "1" ein, ansonsten "0".'
    end = input()
Aus der fehlermeldung werde ich nicht schlau, es ist auch schon länger her das ich in python geschrieben habe, habe ich vieleicht was grundlegendes übersehen ?
Wäre echt super wenn ihr mir schnell antworten könntet,
danke schon mal im voraus.

Mfg da3m0n

Edit (Leonidas): Code in Python-Tags gesetzt.

Verfasst: Montag 19. September 2005, 09:03
von cime
kann es sein, dass du umlaute verwendest??? das würde ich denken ist der fehler ...

Verfasst: Montag 19. September 2005, 11:15
von Gast
Ich habe mal durch geguckt und keine umlaute gefunden, auser bei einem text den ich aus gebe und bei den Zitaten könnten noch welche sein.
Aber das müste doch eigentlich egal sein oder ?

Verfasst: Montag 19. September 2005, 12:02
von heftic
hallo!
also ein UnicodeError: sagt eigendlich immer dass du Zeichen verwendet hast die nicht richtig übersetzt werden können weil sie nicht in der encoding-tabelle definiert sind. (siehe auch www.unicode.org)

außerdem ist mir noch aufgefallen das du in dem Beispielcode den Funktionsaufruf "sortiere" anders als die Funktionsdefinition "sortieren" geschrieben hast.


versuchs mal indem du # -*- coding: latin-1 -*- am Anfang des Quellcodes einfügst.
vieleicht gehts dann schon.

mfg
heftic

Verfasst: Montag 19. September 2005, 15:47
von da3m0n
Tatsache, ich habe jetzt mal alle umlaute aus dem Programm genommen, sogar die die in den Kommentaren standen und jetzt funktioniert es.
Ich dachte er würde alles hinter der # ignorieren ?!?

Danke, jetzt kann ich entlich weiter machen ^^

bis dann
da3m0n

Verfasst: Montag 19. September 2005, 17:53
von Leonidas
da3m0n hat geschrieben:Ich dachte er würde alles hinter der # ignorieren ?!?
Ja, bis auf wenn in der zweiten Zeile das encoding definiert wird.

Verfasst: Dienstag 20. September 2005, 05:29
von mitsuhiko
Leonidas hat geschrieben:
da3m0n hat geschrieben:Ich dachte er würde alles hinter der # ignorieren ?!?
Ja, bis auf wenn in der zweiten Zeile das encoding definiert wird.
oder in der ersten

Verfasst: Dienstag 20. September 2005, 11:46
von Leonidas
blackbird hat geschrieben:oder in der ersten
Ja, aber dort steht in meinem Programmen schon die Shebang, auch wenn ich Programme für Windows schreibe. Schadet nicht und hilft manchmal :)