Hallo an alle!
ich habe ein kleines Programm, dass mit raw_input verschiedene Zahlen eines Benutzers einliest.
in einer funktion kann ich mir alles eingegeben daten nochmal anschauen, sowei so gut!
jetzt möchte ich, dass diese zahlen in einer txt datein gespeichert werden und auch wieder geladen werden können!
habt ihr eine idee, wie sowas funktionieren könnte?
Vielen Dank!
Programm speichern/laden
-
- User
- Beiträge: 36
- Registriert: Dienstag 10. Januar 2006, 13:24
- Kontaktdaten:
Never touch a running system...
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Naja, zuerst mal öffnest Du eine Datei
Das "w" steht für write. Dann schreibst Du was rein
Zum lesen, Datei öffnen ("r" = read)
und lesen
Gruß, mawe
Naja, zuerst mal öffnest Du eine Datei
Code: Alles auswählen
f = file("dateiname.txt", "w")
Code: Alles auswählen
f.write(was_auch_immer)
Code: Alles auswählen
f = file("dateiname.txt", "r")
Code: Alles auswählen
xyz = f.read()
-
- User
- Beiträge: 36
- Registriert: Dienstag 10. Januar 2006, 13:24
- Kontaktdaten:
dankeschön vom prinzip her funktionierts!
nur er zeigt mir bei float werden (meine vermutun) diesen fehler an:
Traceback (most recent call last):
File "menu.py", line 206, in ?
f.write(schnittlaenge_kreis)
TypeError: argument 1 must be string or read-only character buffer, not float
nur er zeigt mir bei float werden (meine vermutun) diesen fehler an:
Traceback (most recent call last):
File "menu.py", line 206, in ?
f.write(schnittlaenge_kreis)
TypeError: argument 1 must be string or read-only character buffer, not float
Never touch a running system...
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Einfach in einen String umwandeln
Code: Alles auswählen
f.write(str(schnittlaenge_kreis))
und am ende deiner funktion solltest du die datei in welche du schreibst
auch schließen.
auch schließen.
Code: Alles auswählen
f.close()
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Oder den ini-Parser nehmen, wenn es mehr Daten werden... Oder gleich pickle nehmen, hat den Vorteil, das man ganze Datensätzte leicht abspeichern und laden kann, allerdings ist die Textdatei nicht mehr wirklich per Hand bearbeitbar...
-
- User
- Beiträge: 36
- Registriert: Dienstag 10. Januar 2006, 13:24
- Kontaktdaten:
alles klar vielen dank hat perfekt geklappt!
ein schönheitsfehler hab ich noch, die txt schreibt dann alles hintereinander, wie kann ich es erreichen eine newline zu setzen?
ein schönheitsfehler hab ich noch, die txt schreibt dann alles hintereinander, wie kann ich es erreichen eine newline zu setzen?
Never touch a running system...
Alpha-Phonix hat geschrieben:alles klar vielen dank hat perfekt geklappt!
ein schönheitsfehler hab ich noch, die txt schreibt dann alles hintereinander, wie kann ich es erreichen eine newline zu setzen?
Code: Alles auswählen
f.write(zuschreibenderstring + "\n")
Grüße
Matthias
- Fluchen befreit von Kummer und Leid -
Matthias
- Fluchen befreit von Kummer und Leid -
-
- User
- Beiträge: 36
- Registriert: Dienstag 10. Januar 2006, 13:24
- Kontaktdaten:
da kommt dann...
Traceback (most recent call last):
File "menu.py", line 210, in ?
f.write(str(schnittlaenge_kreis + "\n"))
TypeError: unsupported operand type(s) for +: 'float' and 'str'
Traceback (most recent call last):
File "menu.py", line 210, in ?
f.write(str(schnittlaenge_kreis + "\n"))
TypeError: unsupported operand type(s) for +: 'float' and 'str'
Never touch a running system...
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
mr.hide hat ja auch geschrieben "zuschreibenderstring", das soll also schon ein string sein. Also, entweder
oder
Bei der zweiten Methode kann am wenigsten schief gehen, weil %s alles in einen String umwandelt.
Code: Alles auswählen
f.write(str(schnittlaenge_kreis) + "\n")
Code: Alles auswählen
f.write("%s\n" % schnittlaenge_kreis)
Generell solltest du dir angewöhnen die Fehlermeldungen zu lesen.Alpha-Phonix hat geschrieben:da kommt dann...
Traceback (most recent call last):
File "menu.py", line 210, in ?
f.write(str(schnittlaenge_kreis + "\n"))
TypeError: unsupported operand type(s) for +: 'float' and 'str'
- TypeError: es stimmt etwas nicht mit den verwendeten Datentypen.
- unsupported operand type(s): operand, damit ist das + gemeint.
ja und unsupported types, kann dann nur noch heissen dass man str und float nicht addieren kann

also hast du 2 möglichkeiten aus dem str ein float zu machen was recht sinnfrei ist oder aus dem float ein str.
Grüße
Matthias
- Fluchen befreit von Kummer und Leid -
Matthias
- Fluchen befreit von Kummer und Leid -
-
- User
- Beiträge: 36
- Registriert: Dienstag 10. Januar 2006, 13:24
- Kontaktdaten:
vielen dank, dass mit dem speichern funktioniert jetzt einwandfrei!
nun zum laden, ich habe wie oben beschrieben programmiert, jedoch (wäre hätte es gedacht) klappt es nicht so, wie ich des will...
ich habe jetzt ein txt datei und will die werte die da drin stehn, in meinem prog wieder benutzen, dass heißt:
wenn in der txt steht
Radius: 5cm
dann will ich nach dem laden, wieder mit dem wert arbeiten können, da sagt er mir immer radius is not defiend....
wie muss ich des machen??
nun zum laden, ich habe wie oben beschrieben programmiert, jedoch (wäre hätte es gedacht) klappt es nicht so, wie ich des will...
ich habe jetzt ein txt datei und will die werte die da drin stehn, in meinem prog wieder benutzen, dass heißt:
wenn in der txt steht
Radius: 5cm
dann will ich nach dem laden, wieder mit dem wert arbeiten können, da sagt er mir immer radius is not defiend....
wie muss ich des machen??
Never touch a running system...
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Dazu passt der eine ini Datei besser! Schau mal hier: http://www.python-forum.de/viewtopic.php?p=27731#27731