Dictionaries speichern

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.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 22. Dezember 2007, 14:05

Brafil hat geschrieben:nur das runtime/exe erzeugen krieg ich net hin... :?
Mit der Forumssuche bekommst du eine Menge Threads zu dem Thema.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Samstag 22. Dezember 2007, 16:31

Brafil hat geschrieben:nur das runtime/exe erzeugen krieg ich net hin...
Hallo Brafil!

Für ein Tkinter-Programm: Nimm py2exe http://www.py2exe.org/ und lass dir von http://xoomer.alice.it/infinity77/main/GUI2Exe.html helfen.

Für ein wxPython-Programm: Dafür kenne ich nur cx_freeze http://python.net/crew/atuining/cx_Freeze/. Mit py2exe habe ich das noch nicht versucht.

mfg
Gerold
:-)
[url]http://halvar.at[/url] | [url=http://halvar.at/elektronik/kleiner_bascom_avr_kurs/]Kleiner Bascom AVR Kurs[/url]
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Brafil
User
Beiträge: 40
Registriert: Montag 17. Dezember 2007, 17:51
Wohnort: Istanbul

Sonntag 23. Dezember 2007, 10:27

Der List@editor ist da! Nur speichern und laden klappt immer noch nicht, obwohl ich den code 10-mal durchgelesen habe

List@editor v1.0
[b][color=blue]Python[/color] + [color=orange]Blender[/color][/b] = [i]Super[/i]

[i]"Le Python mangera Tout"[/i]

The Python is gonna eat everything

(Except for Java, there are too many fans)
BlackJack

Sonntag 23. Dezember 2007, 10:52

Speichern klappt. Laden hat keinen (dauerhaften) Effekt. In der Funktion wird der lokale Name `mydict` an die geladenen Daten gebunden. Das hat natürlich keine Auswirkungen auf das Objekt, das an `mydict` auf Modulebene gebunden ist. Das müsste man leeren und mit den geladenen Daten füllen. Stichworte `clear()` und `update()`.
Brafil
User
Beiträge: 40
Registriert: Montag 17. Dezember 2007, 17:51
Wohnort: Istanbul

Sonntag 23. Dezember 2007, 11:05

ENDLICH!!! Ich habe ein App daraus gemacht.. Ohne Fehlermeldung!
Na ja... fast...
[b][color=blue]Python[/color] + [color=orange]Blender[/color][/b] = [i]Super[/i]

[i]"Le Python mangera Tout"[/i]

The Python is gonna eat everything

(Except for Java, there are too many fans)
Brafil
User
Beiträge: 40
Registriert: Montag 17. Dezember 2007, 17:51
Wohnort: Istanbul

Sonntag 23. Dezember 2007, 11:47

Ich hab die gespeicherte datei test.txt angeguckt, die ich gerade überschrieben hatte, aber da stehen immer noch die Werte von vorgestern. Stimmt hier was nicht?

Code: Alles auswählen

#Choose the place where to save to
    try:
        savefiled = tkFileDialog.asksaveasfilename(defaultextension="*.txt") #Später "*.dat"

        #If the name doesn't end with '.dat', add it
        if not savefiled.lower().endswith(".dat"):
            savefiled = savefiled + ".dat"
    
        fsave = open(savefiled, "w")
        pickle.dump(mydict, fsave)
        #Display a message
        tkMessageBox.showinfo("Save File", "File has been saved successfully")

    except:
        
        tkMessageBox.showerror("Error", "Couldn't save file")
        
Ich weiß, das try-except ist falsch, aber ohne das war es genauso. Und loadfile ist auch net mehr:

Code: Alles auswählen

def Loadfile(): 
    """Loads a file"""
    namefile = tkFileDialog.askopenfilename(defaultextension='*.txt')

    #Tries to open the file
    try:
        fopen = open(namefile)
        mydict = pickle.load(fopen)
        fopen.close()
        #Display a message
        tkMessageBox.showinfo("Load File", "File has been loaded successfully")

    #If it can't
    except:

        #Show error message
        tkMessageBox.showerror("Error", "Couldn't open file")

    return mydict
PS: Ich benutze

Code: Alles auswählen

import pickle
und nicht

Code: Alles auswählen

from pickle import *
oder import pickle as pckl 
oder so ähnlich...
[b][color=blue]Python[/color] + [color=orange]Blender[/color][/b] = [i]Super[/i]

[i]"Le Python mangera Tout"[/i]

The Python is gonna eat everything

(Except for Java, there are too many fans)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 23. Dezember 2007, 13:28

Bist du dir sicher dass das ausgeführt wird? Außerdem ist der Schreib-Modus ``wb`` und der Lese-Modus ``rb``.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Brafil
User
Beiträge: 40
Registriert: Montag 17. Dezember 2007, 17:51
Wohnort: Istanbul

Sonntag 23. Dezember 2007, 17:54

Es geht immer noch nicht...
[b][color=blue]Python[/color] + [color=orange]Blender[/color][/b] = [i]Super[/i]

[i]"Le Python mangera Tout"[/i]

The Python is gonna eat everything

(Except for Java, there are too many fans)
Antworten