2016-09-29 9 views
1

Ich habe ein Programm mit Python 3 gemacht, das den vorherigen Lauf mit Essiggurke speichert. Stattdessen muss ich eine TXT-Datei verwenden. Wie ich es verstehe, kann es mit dem Befehl open und .write getan werden? Aber ich bin mir nicht ganz sicher, wie ich das machen soll. Das Programm funktioniert gut mit Essiggurke, aber ich muss stattdessen lernen, wie man eine Textdatei verwendet. Ich würde jede Hilfe sehr schätzen! Dies ist das Funktionsmodul die Informationen nach jedem Durchlauf spart:Ich benutze Pickle, aber ich muss eine Textdatei verwenden

import pickle 
class TV(object): 
def __init__(self, name): 
    self.name = name 
    try: 
     self.load() 
    except: 
     self.Kanal = 1 
     self.Volym = 1 




def __str__(self): 
    printstring = str("\n".join(("%s:","Kanal: %s", "Volym: %s"))%(self.name, self.Kanal, self.Volym)) 
    return printstring 


def bytKanal(self,kanal): 
    self.Kanal = kanal 
    self.save() 
    return kanal 

def sank_volym(self): 
    if self.Volym!=0: 
     self.Volym -= 1 
    self.save() 
    return self.Volym 

def hoj_volym(self): 
    if self.Volym!=10: 
     self.Volym += 1 
    self.save() 
    return self.Volym 

def save(self): 
    file = open(self.name+".txt","wb") 
    file.write(pickle.dumps(self.__dict__)) 
    file.close() 

def load(self): 
    file = open(self.name+".txt","rb") 
    datapickle = file.read() 
    file.close() 

    self.__dict__=pickle.loads(datapickle) 

Antwort

2

Da Sie nur der Instanz dict Serialisierung würde ich json

def save(self): 
    with open(self.name+".txt","w") as file: 
     file.write(json.dumps(self.__dict__)) #json 


def load(self): 
    with open(self.name+".txt","r") as file: 
     json_data = file.read() 

    self.__dict__=json.loads(json_data) #json! 

Sie über json können auch lesen möchten empfehlen: https://en.wikipedia.org/wiki/JSON

+0

Danke !! Json hat es geschafft :) –

Verwandte Themen