2017-02-04 1 views
0

Ich habe ein Skript, das nach Daten fragt, dann schreibt es in ein TXT-Dokument mit einfachen file.open() und file.close() und file.write()). Jedes Mal, wenn ich das Skript ausführe, speichert es das Dokument entweder nicht oder überschreibt es. Wie bekomme ich mein .txt-Dokument, um Daten aus mehreren Durchläufen widerzuspiegeln? Wenn ich das Dokument öffne, enthält es nur Daten von meinem letzten Lauf des Programms. Hier ist das Skript:Python - Kann keinen Weg finden, ein TXT-Dokument zu speichern

name = input("What is your name?") 

file = open("Python.txt","w") 

file.write("Next User ") 
file.write(name) 
file.write(" ") 


ans1 = input("Which would you rather lose? a: an arm or b: a leg?") 
file.write(ans1) 

ans2 = input("What is your favorite primary color? a: red b: yellow c: blue") 
file.write(ans2) 

ans3 = input("Which do you like better? a: dogs b: cats c: birds d: hamsters e: lizards") 
file.write(ans3) 

ans4 = input("Do you prefer to a: talk to people b: text people or c: avoid people?") 
file.write(ans4) 

print("That's all for now!") 
print("Here's your code: ",ans1,ans2,ans3,ans4) 
print("Here's what other users got:") 
file = open("Python.txt", "r") 
read = file.read() 
print(read) 
print("The last line is your own results.") 

ich die read = file.read() in setzen, denn wenn ich print file.read() verwenden es gibt ‚ungültige Syntax‘. Auch: Wie schreibe ich eine Return- oder Enter-Taste?

+0

Warum die übermäßige Anzahl von Leerzeilen? Du nimmst viele vertikale Immobilien auf! –

+0

Welche Version von Python verwenden Sie? –

+2

Verwenden Sie den Modus 'a' (für Anhängen) anstelle von 'w'. Dadurch werden Ergebnisse am Ende der Datei hinzugefügt, anstatt sie zu überschreiben. –

Antwort

0

open übernimmt ein zweites Argument, mode, das angibt, wie die Datei gelesen oder geschrieben werden soll. Der Standardwert ist "r", was dem Lesen einer Textdatei entspricht. Der Wert, der zum Anhängen an eine Textdatei geeignet ist (Erstellen, falls sie nicht existiert), lautet "a". Also mach sowas.

with open("my-file.txt", "a") as f: 
    f.write("Fun text.\n") 
    f.write("More fun text!\n") 
+0

Wie kann ich eine Rückgabe eingeben? – Anonymoose

+0

Ich habe die Antwort bearbeitet, um neue Zeilen zwischen die Strings zu setzen. Ein '\ n' in einem String-Literal erzeugt eine neue Zeile. –

+0

Großartig! Ich hätte Stack Overflow schon lange benutzen können – Anonymoose

Verwandte Themen