2016-07-31 43 views
-2

Ich versuche, eine Funktion zu erstellen, um Daten aus mehreren Entry-Widgets in meinem Code zu speichern und eine neue Sicherungsdatei zu erstellen, die die Daten von allen Einträgen speichert.Erstellen einer Sicherung als Funktion in Python

Ich machte eine Eintragsliste namens Einträge und versuchen, daraus zu ziehen, aber es kann nicht ganz richtig. Es erstellt die Datei, aber es ist immer leer.

Dies ist der Code für meine speichern als Funktion mit tkinter Widgets.

def file_save_as(self): 
    fout = asksaveasfile(mode = 'a', defaultextension = '.txt') 
    with open('fout', 'a') as f: 
     for entry in self.entries: 
      f.write("%s\n" % entry) 
+0

Sind Sie ' 'fout'' eine Zeichenfolge in der Zeile' mit open (' fout‘, 'a') als f zu machen bedeutet:', oder sollte es die 'fout' variabel sein ? – 101

+0

'asksaveasfile' gibt eine bereits geöffnete Datei zurück. Verwenden Sie die dokumentierte Methode 'get()', um den Wert aus einem Eingabe-Widget abzurufen. –

+0

Oder verwenden Sie 'asksaveasfilename', um nur den Dateinamen zu erhalten. – 101

Antwort

2
def file_save_as(self): 
    fout = asksaveasfilename(defaultextension = '.txt') 
    try: 
     with open(fout, 'w') as output: 
      for x in self.entries: 
       output.write(x.get()) 
    except FileNotFoundError: 
     print("Cancelled save or error in filename")