Seite 1 von 1

Eingabefeld in Txt Datei senden

Verfasst: Sonntag 13. Mai 2018, 13:36
von Phobit
Huhu nochmal,
habe mal wieder ein Problem. Ich versuche zur Zeitein größeres Python Programm mit tkinter zu schreiben. aktuell ist das iel, dass der nutzer, wenn er einen Bug sieht, eine Nachricht absenden kann die in einer txt datei gespeichert wird. klappt auch schon, nur das Porblem: er schreibt jeden Eintrag ohne leertaste hinter den vorherigen. mit \n gehts nicht, dann wirft er nen error raus.Hier wäre mal der Code:

Code: Alles auswählen

def bugs():
        bags = eingabefeld.get()
        sdatei = open('News.txt')
        l = sdatei.readlines()
        sdatei.close()
        l.append(bags)
        sdatei = open('News.txt', 'w')
        sdatei.write("".join(l))
        sdatei.close()
gibts irgendwie ne Möglichkeit hinter meine Variable "bags", die heißt nur zum test so, eine \n zu setzen oder generell nach jedem Eintrag ne neue Zeile zu setzen?

Re: Eingabefeld in Txt Datei senden

Verfasst: Sonntag 13. Mai 2018, 16:10
von narpfel
Moin,

was genau hast du denn versucht, um einen Zeilenumbruch einzufügen und welche Fehlermeldung hast du bekommen?

Re: Eingabefeld in Txt Datei senden

Verfasst: Sonntag 13. Mai 2018, 16:25
von Phobit
narpfel hat geschrieben: Sonntag 13. Mai 2018, 16:10 Moin,

was genau hast du denn versucht, um einen Zeilenumbruch einzufügen und welche Fehlermeldung hast du bekommen?
Also, versucht habe ich folgendes:

Code: Alles auswählen

def bugs():
        bags = eingabefeld.get()
        sdatei = open('News.txt')
        l = sdatei.readlines()
        sdatei.close()
        l.append(bags, \n) #HIER einfach ein \n eingefügt
        sdatei = open('News.txt', 'w')
        sdatei.write("".join(l))
        sdatei.close()
        
Und als Fehlermeldung kam dann raus:
Syntac Error
unexpected character after line continuation charcter

Re: Eingabefeld in Txt Datei senden

Verfasst: Sonntag 13. Mai 2018, 16:40
von narpfel
`"\n"` ist eine Zeichenkette und muss deswegen wie jede andere Zeichenkette in Anführungszeichen geschrieben werden. Dann wirst du noch ein Problem haben: Die `append`-Methode von Listen erwartet genau ein Argument.

Re: Eingabefeld in Txt Datei senden

Verfasst: Sonntag 13. Mai 2018, 19:26
von Phobit
narpfel hat geschrieben: Sonntag 13. Mai 2018, 16:40 `"\n"` ist eine Zeichenkette und muss deswegen wie jede andere Zeichenkette in Anführungszeichen geschrieben werden. Dann wirst du noch ein Problem haben: Die `append`-Methode von Listen erwartet genau ein Argument.
Das hab ich gerade eben vorhin auch schon gesehen, aber es wird doch wohl eine Möglichkeit geben, um da nach jeder Meldung einen Zeilenumbruch zu schalten... :K

Re: Eingabefeld in Txt Datei senden

Verfasst: Montag 14. Mai 2018, 06:28
von Sirius3
Statt jedesmal die gesamte Datei zu lesen und wieder zu schreiben, reicht es hier, einfach eine Zeile anzuhängen:

Code: Alles auswählen

def bugs(eingabefeld):
        bags = eingabefeld.get()
        with open('News.txt', 'a') as news:
            news.write(bags + '\n')

Re: Eingabefeld in Txt Datei senden

Verfasst: Dienstag 15. Mai 2018, 16:54
von Phobit
Sirius3 hat geschrieben: Montag 14. Mai 2018, 06:28 Statt jedesmal die gesamte Datei zu lesen und wieder zu schreiben, reicht es hier, einfach eine Zeile anzuhängen:

Code: Alles auswählen

def bugs(eingabefeld):
        bags = eingabefeld.get()
        with open('News.txt', 'a') as news:
            news.write(bags + '\n')
AHH so geht das mit dem write :lol: Ja wusste nicht wie das geht, aber ich hatte es jetzt auch gelöst, indem ich einfach nochmal ne Zeile angehängt habe mit append("\n") so gings dann auch...Aber danke auf jeden Fall für die Hilfe!