save ohne überschreiben?

Fragen zu Tkinter.
Antworten
Benutzeravatar
skunkk90
User
Beiträge: 57
Registriert: Donnerstag 1. Juni 2006, 20:38
Wohnort: F:\Homeverzeichnis.zip
Kontaktdaten:

Guten Tag!
Ich habe mit folgendem Programm vor Eingaben in einer .txt abzuspeichern, aber OHNE dass das davorige überschrieben wird! Es soll also eine Art Protokoll ergeben!

Code: Alles auswählen

# -*- coding: cp1252 -*-
from Tkinter import*
from ScrolledText import*

def arbeite():
    f = open('DeineTipps.txt', "r")
    sporteingabe=str(sportEntry.get())
    mann1eingabe=str(mann1ein.get())
    mann2eingabe=str(mann2ein.get())
    tippein1eingabe=str(tippein1.get())
    tippein2eingabe=str(tippein2.get())
    ausgabefeld.insert(END,'Du hast im "'+sporteingabe+'" bei\n"'+mann1eingabe+'" gegen "'  +mann2eingabe+ ' ",\n'+tippein1eingabe+' : '+tippein2eingabe+' getippt!\n\n')
    f = open('DeineTipps.txt', "w")
    f.write('Du hast im "'+sporteingabe+'" bei\n"'+mann1eingabe+'" gegen "'  +mann2eingabe+ '",\n'+tippein1eingabe+' : '+tippein2eingabe+' getippt!\n\n')
    
Hier wird der Tipp in der "DeineTipps.txt" gespeichert (Zeile 13 und 14), nur eben bei mehrmaligen Tippen wieder überschrieben... Wie löse ich dieses Problem?
pr0stAta
User
Beiträge: 271
Registriert: Freitag 17. September 2004, 11:49
Wohnort: Bremen

Versuche folgendes

Code: Alles auswählen

# -*- coding: cp1252 -*-
from Tkinter import*
from ScrolledText import*

def arbeite():
    f = open('DeineTipps.txt', "aw+")
    sporteingabe=str(sportEntry.get())
    mann1eingabe=str(mann1ein.get())
    mann2eingabe=str(mann2ein.get())
    tippein1eingabe=str(tippein1.get())
    tippein2eingabe=str(tippein2.get())
    ausgabefeld.insert(END,'Du hast im "'+sporteingabe+'" bei\n"'+mann1eingabe+'" gegen "'  +mann2eingabe+ ' ",\n'+tippein1eingabe+' : '+tippein2eingabe+' getippt!\n\n')
    f.write('Du hast im "'+sporteingabe+'" bei\n"'+mann1eingabe+'" gegen "'  +mann2eingabe+ '",\n'+tippein1eingabe+' : '+tippein2eingabe+' getippt!\n\n')
   
Es gibt verschiedene Arten eine Datei zu öffnen. r für read only und w
für write z.B. Mit aw+ erzeugst du ggf. die Datei falls sie nicht vorhanden ist. Ist sie vorhanden, hängst du den Text an den bereits vorhandenen ran. Und bitte denk daran, die Datei immer per f.close() nach deinen
operationen zu schließen.

gruss
*heute hab ich nen aktiven tag :D *
Benutzeravatar
skunkk90
User
Beiträge: 57
Registriert: Donnerstag 1. Juni 2006, 20:38
Wohnort: F:\Homeverzeichnis.zip
Kontaktdaten:

hey wow vielen Dank!! :D :D
huuhuu^^ jetzt ist es schon wieder besser geworden ^^
hehe mfg
Benutzeravatar
skunkk90
User
Beiträge: 57
Registriert: Donnerstag 1. Juni 2006, 20:38
Wohnort: F:\Homeverzeichnis.zip
Kontaktdaten:

aber eine frage hätte ich noch, wenn wir schonmal beim saven wären...und zwar:
wie kann ich es hinbekommen, dass er NICHTS speichert, wenn auch nichts in die eingabefelder eingetragen wird, sie also leer sind?
(ich möchte eben verhindern, dass wenn man 15 ma auf den button klickt, dass dann auch eben 15 mal da steht: Du hast im
"" bei "" gegen " ", : getippt!)
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

was hältst du von der anweisung "IF"???
Benutzeravatar
skunkk90
User
Beiträge: 57
Registriert: Donnerstag 1. Juni 2006, 20:38
Wohnort: F:\Homeverzeichnis.zip
Kontaktdaten:

ja wie denn?

Code: Alles auswählen

if eingabefeld.get()== :
print 'Bitte etwas eingeben'
??
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Code: Alles auswählen

if eingabefeld.get() == '':
Benutzeravatar
skunkk90
User
Beiträge: 57
Registriert: Donnerstag 1. Juni 2006, 20:38
Wohnort: F:\Homeverzeichnis.zip
Kontaktdaten:

mit welchem befehl kann ich dem IF mehrere variablen geben?
also zB

Code: Alles auswählen

if eingabefeld.get() and USW...
and? or?
Benutzeravatar
skunkk90
User
Beiträge: 57
Registriert: Donnerstag 1. Juni 2006, 20:38
Wohnort: F:\Homeverzeichnis.zip
Kontaktdaten:

ich habe es jetzt so gemacht:

Code: Alles auswählen

if sporteingabe or mann1eingabe or mann2eingabe or tippein1eingabe or tippein2eingabe == '':
        ausgabefeld.insert(END,'Alle Felder müssen ausgefüllt werden!\n')
else:
        ausgabefeld.insert(END,'Dein Tipp wurde in der "Tipp-Protokoll.txt"\ngespeichert!\n\n')
        f.write('Sport: '+sporteingabe+'\nMannschaft 1: '+mann1eingabe+'\nMannschaft 2: '+mann2eingabe+'\nDein Tipp: '+tippein1eingabe+' : '+tippein2eingabe+'\n______________________________________\n\n')
nur sagt er mir jetzt IMMER dass alle felder leer seien?? wo ist der fehler/ was muss ich ändern??
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

sporteingabe == '' or manneingabe1 == '' or ...
Benutzeravatar
skunkk90
User
Beiträge: 57
Registriert: Donnerstag 1. Juni 2006, 20:38
Wohnort: F:\Homeverzeichnis.zip
Kontaktdaten:

vielen dank es funktioniert!!
Antworten