2017-09-22 5 views
-3

Was ist der einfachste Weg, mehr als eine Eingabe in einer Textdatei zu speichern, so dass für jedes Mal, wenn ich es ausführe, ein neues Wort hinzugefügt wird?Mehrere Eingaben in Textdatei schreiben?

randomlist = [] 
randominput = input() 

randomlist.append(randominput) 
randomlist.append(randominput) 

with open("bleh.data", "w") as f: 
    f.write(str(randomlist)) 
    print(randomlist) 

Dies zum Beispiel gab mir nur eine Kopie der ersten Eingabe.

edit: Scheint, ich habe vermisst, dass ich "w" anstelle von "a" geschrieben habe. Nur ich nicht aufgepasst, es wurde gelöst. Vielen Dank!

+0

Verwenden Sie den Anfügemodus 'a' für' mit Öffnen ("bleh.data", "a") als f: 'Es öffnet sich zum Anhängen am Ende der Datei, ohne es zu kürzen. Erstellt eine neue Datei, wenn sie nicht existiert. –

+0

Welche Daten erhalten Sie? Saiten oder Zahlen? – Kev1n91

+0

Ich versuche ein Inventar zu erstellen, das sowohl Strings als auch Zahlen aufnehmen und speichern kann, bis ich sie anrufe. Nicht sicher, ob das irgendetwas klarstellt ... –

Antwort

0

Überprüfen Sie die Dokumentation für die Python eingebaute in open():

Die am häufigsten verwendeten Werte der Modus ‚r‘ für Lesen, ‚w‘ für das Schreiben (Kürzen Sie die Datei, wenn sie bereits vorhanden ist) und 'a' zum Anhängen (was auf einigen Unix-Systemen bedeutet, dass alle Schreibvorgänge unabhängig von der aktuellen Suchposition an das Ende der Datei angehängt werden).

Die w Flagge öffnet die Datei zum Schreiben und kürzt es erste. Sie wollen a nicht w.

Alternative könnten Sie os.lseek() verwenden. Wenn Sie jedoch w auf Ihrem Open angeben, wird die Datei immer zuerst auf die Größe 0 gekürzt, und Sie entfernen alles, was Sie zuvor geschrieben haben.