Mehrere Textdateien erstellen

Fragen zu Tkinter.
Antworten
Philipp68
User
Beiträge: 34
Registriert: Freitag 23. Juni 2017, 10:14

Hallo,
ich habe eine GUI mit mehreren entry-Feldern, in diese Werte eingetragen werden. Ich habe einen Button, der die Einträge in eine txt.-Datei schreibt. Möchte ich nun neue Einträge tätigen, wird keine neue Datei erzeugt, erst wenn ich die GUI schließe und neustarte. Kann mir jemand sagen, woran das liegt? Vielen Dank!

Code: Alles auswählen

def saveconfig():
        f = open(r'C:\Users\Philipp\SkyDrive\Designprojekt\Philipp\GUI Python\NeuBeginn\Config\Configuration_' + date_string + '.txt','w')
        a = field1.get()
        b = field2.get()
        c = field3.get()
        d = field4.get()
        e = field5.get()
        f.write('Time of measurement:' '\n' + a + '\n' + 'Time of flicker light:' '\n' + b + '\n' + 'Start of flicker light:' '\n' + c + '\n' + 'SMD-LED-intensity:' '\n' + d + '\n' + 'SMD-LED-frequency:' '\n' + e)
        f.close()
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@Philipp68: aus dem Code wird nicht deutlich, was Du genau machst und warum es nicht funktioniert. Als ersten Schritt solltest Du alle globalen Variablen loswerden (die könnten die Ursache des Problems sein); alles was eine Funktion braucht, muß ihr per Argumente übergeben werden. Wenn Du anfängst Variablennamen durchzunummerieren, dann willst Du wahrscheinlich eine andere Datenstruktur verwenden. Statt Strings mit + zusammenzustückeln empfehle ich die Verwendung von .format
Philipp68
User
Beiträge: 34
Registriert: Freitag 23. Juni 2017, 10:14

Hallo Sirius3,
ich habe das Problem herausgefunden. Es lag an "date_string". Die Idee war, die Datei mit dem Datum + Zeit abzuspeichern. Jedoch wurde jedes Mal die Datei nur überschrieben, aber keine neue erstellt. Nun wird in den Namen drei Parameter eingetragen (field.get()) und bei unterschiedlichen Einträgen wird auch eine neue Datei im Speicherverzeichnis erstellt.
Lg
Melewo
User
Beiträge: 320
Registriert: Mittwoch 3. Mai 2017, 16:30

Philipp68 hat geschrieben:Jedoch wurde jedes Mal die Datei nur überschrieben, aber keine neue erstellt.
Selbst wenn es nun funktionieren sollte, Dein Code lässt dennoch zu wünschen übrig. Eigentlich beginnt es bereits damit, dass Du 8 Leerzeichen für Einrückungen verwendest, statt den üblichen 4 und setzt sich dann fort. Das Pluszeichen würde ich da auch nicht mehr unbedingt verwenden, ist normal und kein Problem für einen Einsteiger, doch nach vier bis acht Wochen lernt man dann eigentlich, wie es besser gemacht wird. Sirius3 gab bereits einen Hinweis zu mit + gestückelten Strings und für Pfade lässt sich os.path.join() verwenden. Und ob eine Datei neu angelegt werden muss oder z.B. täglich nur ergänzt zu werden braucht, darauf wird der verwendete Modus entsprechend ausgerichtet, "w" überschreibt und "a" ergänzt.
Antworten