Seite 1 von 1

Eingabe aus dem Textfeld in txt. Datei ablegen.

Verfasst: Donnerstag 29. Juni 2017, 21:11
von Merll
Hi Leute,

ich versuche mich gerade daran eine Benutzeroberfläche zu erstellen mit deren Hilfe ein Festes Wort "Aufgabe" mit einer vom Benutzer eingegebenen Zahl in einer txt. Datein abgespeichert wird.
Mein Problem ist, dass ich es nicht schaffe die eingebene Zahl die nach betätigung des Buttons in der Konsole angezeigt wir in die txt. Datei zu übertragen... kann mir da vielleicht jemand helfen?

Danke schon mal!

Code: Alles auswählen

from tkinter import*
import os

fenster = Tk()      # Erzeugung des Fensters
fenster.title("Orgasoft Kamb")
fenster.geometry("400x400")

label1 = Label(text="Kamb Autrags- und Zeitorganisation")
label1.pack()


def ausgabe():
    daten = open("D:/Users/Marius/Desktop/Zeiterfassungsliste.txt","w")
    daten.write("Time and Date")           # Erzeugung eintrag in die Textdatei

    daten.close()

Schaltfläche1 = Button(fenster, text="Zeiterfassung",command = ausgabe)    # Erzeugung  Schaltfläche 1
Schaltfläche1.pack()

eingabe = Entry(fenster)      #Erzeugung Eingabefeld
eingabe.pack()

def lesen():                                                        #Erzeugung eingabe
    daten2 = open("D:/Users/Marius/Desktop/Auftragsregistration.txt","w")     
    daten2.write("Auftrag:")
    print (eingabe.get())

Schaltfläche2 = Button(fenster, text="Auftragsregistration",command = lesen)  # Erzeugung Schaltfläche 2 2
Schaltfläche2.pack()


mainloop()


Re: Eingabe aus dem Textfeld in txt. Datei ablegen.

Verfasst: Donnerstag 29. Juni 2017, 21:45
von BlackJack
@Merll: In dem Code steht ja auch nichts was das *machen* würde. Das ist aber sowieso alles nicht wirklich sinnvoll so. Arbeite am besten mal das Tutorial in der Python-Dokumentation durch, inklusive objektorientierte Programmierung, denn das braucht man für jede nichttriviale GUI.

Re: Eingabe aus dem Textfeld in txt. Datei ablegen.

Verfasst: Donnerstag 29. Juni 2017, 21:55
von Alfons Mittelmeyer
Ich würde es auch mit write probieren, denn mit print geht es nicht. Außerdem solltest Du die Datei wieder schließen

Re: Eingabe aus dem Textfeld in txt. Datei ablegen.

Verfasst: Donnerstag 29. Juni 2017, 22:48
von Merll
Ja ich hab es jetzt im gesamten noch mal bearbeitet damit es ordentlicher etc. ist. Das mit dem Write ist mir schon klar das Problem ist das ich nicht weis was da hinter kommt. Z.b. Bei

Code: Alles auswählen

 Print (Eingabe.get()) 
wie soll ich das denn in Write verpacken? Weil wie ein normales Wort Einschreiben mit

Code: Alles auswählen

 daten2.Write (".....") 
geht das ja nicht oder?

Re: Eingabe aus dem Textfeld in txt. Datei ablegen.

Verfasst: Donnerstag 29. Juni 2017, 23:00
von Alfons Mittelmeyer
Merll hat geschrieben:Ja ich hab es jetzt im gesamten noch mal bearbeitet damit es ordentlicher etc. ist. Das mit dem Write ist mir schon klar das Problem ist das ich nicht weis was da hinter kommt. Z.b. Bei

Code: Alles auswählen

 Print (Eingabe.get())
wie soll ich das denn in Write verpacken? Weil wie ein normales Wort Einschreiben mit

Code: Alles auswählen

 daten2.Write (".....")
geht das ja nicht oder?
Das geht nicht, den 'write' schreibt man klen.

Re: Eingabe aus dem Textfeld in txt. Datei ablegen.

Verfasst: Freitag 30. Juni 2017, 10:08
von Melewo
Ohne Klasse muss die Reihenfolge mehr beachtet werden und Du bekommst Variablen nicht einfach von einer Funktion in eine andere übernommen. Bei mehrzeiligen Eingaben, Textfeldern usw. get(1.0, END) verwenden, denke ich mir, bei einzeiligen sollte es weniger eine Rolle spielen. Das funktioniert zumindest bei mir:

Code: Alles auswählen

from tkinter import Tk, Label, Button, Entry
import os
 
fenster = Tk()
fenster.title("Orgasoft Kamb")
fenster.geometry("400x400")
  
label = Label(fenster, text="Kamb Autrags- und Zeitorganisation")
label.pack()

def notiere_zeitangaben():
    datei = open("zeiterfassungsliste.txt","w")
    if datei:
        datei.write("Time and Date")
        datei.close()
    
zeiterfassung = Button(fenster, text="Zeiterfassung",command = notiere_zeitangaben)
zeiterfassung.pack()

eingabe = Entry(fenster)
eingabe.pack()

def notiere_registration():
    erfolgte_eingabe = eingabe.get()

    if erfolgte_eingabe != "":
        datei = open("auftragsregistration.txt","w") 
        if datei:
            datei.write("Auftrag: {}".format(erfolgte_eingabe))
            datei.close()

registration = Button(fenster, text="Auftragsregistration",command = notiere_registration)
registration.pack()

fenster.mainloop()

Re: Eingabe aus dem Textfeld in txt. Datei ablegen.

Verfasst: Freitag 30. Juni 2017, 10:27
von Sirius3
@Melewo: was hast Du Dir bei den if-Abfragen in Zeile 13 und 28 gedacht? open liefert nie einen nicht-wahren Wert zurück. Dateien immer mit dem with-Statement öffnen.

Re: Eingabe aus dem Textfeld in txt. Datei ablegen.

Verfasst: Freitag 30. Juni 2017, 11:25
von Melewo
Gut, dann sollte es so besser sein.

Code: Alles auswählen

from tkinter import Tk, Label, Button, Entry

fenster = Tk()
fenster.title("Orgasoft Kamb")
fenster.geometry("400x400")

  
label = Label(fenster, text="Kamb Autrags- und Zeitorganisation")
label.pack()

def notiere_zeitangaben():
    with open("zeiterfassungsliste.txt","a") as datei:
        datei.write("Time and Date\n")
    
zeiterfassung = Button(fenster, text="Zeiterfassung",command = notiere_zeitangaben)
zeiterfassung.pack()

eingabe = Entry(fenster)
eingabe.pack()

def notiere_registration():
    erfolgte_eingabe = eingabe.get()

    if erfolgte_eingabe != "":
        with open("auftragsregistration.txt","a") as datei:
            datei.write("Auftrag: {}\n".format(erfolgte_eingabe))

registration = Button(fenster, text="Auftragsregistration",command = notiere_registration)
registration.pack()

fenster.mainloop()