Python Input als Datei speichern?
Guten Tag :)
Meine Frage ist es, ob ich folgenden Input als Datei speichern kann?
def pressed1(self, instance):
name = self.firstname.text
last = self.lastname.text
date = self.birthdate.text
bodyh = self.bodyheight.text
bodyw = self.bodyweight.text
print("First Name:", name, "Last Name:", last, "Birthdate:", date, "Body Height:", bodyh, "Body Weight:", bodyw)
Zur Erklärung, falls hier nicht deutlich wird, was das ist:
Es erscheint bei start des Programms ein Fenster, wo ich meinen Namen, mein GebDatum usw eintragen kann. Beim Drücken auf einen Button werden die eingegeben Sachen ausgegeben.
Ich würde das, was ausgegeben wird, gerne als Text Datei abspeichern. Geht sowas?
Danke
2 Antworten
- warum weist du den vorhandenen Attributen neue Variablen zu, wenn du sie im Moment nur zum Printen verwendest? Nutz sie doch direkt?
- Ja, du kannst diese als Text-Datei abspeichern.
aus dem Kopf (müsste noch getestet werden), könntest du es in etwa so machen:
with open(file_path, "w+") as f:
s = f"First Name: {self.firstname.text}\nLast Name: {self.lastname.text}\nBirthdate: {self.birthdate.text}\nBody Height: {self.bodyheight.text}\nBody Weight: {self.bodyweight.text}"
f.write(s)
Dies sollte eine Textdatei mit allen Werten in je einer Zeile pro Wert erstellen - und dank w+ wird die Datei erstellt, wenn nicht existiert.
w+ überschreibt aber den vorhandenen Text - es gibt auch eine Flag, um es zu ergänzen
file_path ist in dem Fall eine Variable, die den Pfad zur Datei als String enthält. kannst das natürlich auch durch den Pfad (relativ z.B.) direkt ersetzen
Okay, dankeschön. Ich versuchs gleich mal. Und 1., ich hab ehrlich gesagt auch keine Ahnung. Das ist schon etwas länger her, dass ich das geschrieben habe
text = "\n".join(pressed1)
f = file("dateiname.txt", "w")
f.write(text)
f.close()
text = "\n".join(pressed1) funktioniert nicht. "pressed1" wird hier als 'not defined' angegeben. Muss ich da noch iwas angeben?
text = "\n".join(print)
f = file("dateiname.txt", "w")
f.write(text)
f.close()
file_path funktioniert bei mir nicht. Muss ich dafür irgendwas importieren?