Dieser Code soll den Inhalt der Datei löschen und die neuen Strings schreiben, die der Benutzer über Terminal eingibt, aber in Wirklichkeit fügt er nur eine neue Zeile hinzu ist schon da. Ich kann es nicht scheinen, den Inhalt vollständig mit truncate()
zu löschen. Wie mache ich das?Mein Code mit truncate() fügt neue Daten an, anstatt alte Daten zu ersetzen
Hinweis: es hat mit truncate()
getan werden, wie es aus dem Buch eine Übung ist, und ich will nicht in die Zukunft springen und mehr fortgeschrittenen Sachen zu verwenden. Danke!
from sys import argv
script, filename, user_name = argv
print("Hi my dear %s... I hope you're doing great today\n" % user_name)
print("We're going to write a string to a file %r\n" % filename)
open_file = open(filename, 'r+')
print("%s, this is what currently file %r has" % (user_name, filename))
read_file = open_file.read()
print("File's content is:\n", read_file)
quote = "To create, first sometime you need to destroy"
print("\n\nAs a quote from your favourite movie says: \n\n %r" \
% quote)
print("So, we will delete the content from the file %r" \
% filename)
open_file.truncate()
print("This is the file %r now" % filename)
print(read_file)
new_line = input("Now let's write something, please start here... ")
print("now %s, let's add this line to the same file %r" \
% (user_name, filename))
open_file.write(new_line)
print("Closing the file")
open_file.close()
print(read_file)
open_file.close()
Mehrere andere haben den besseren Weg dazu erwähnt, was wahrscheinlich eine Abkürzung für 'open_file.seek (0) ist; open_file.truncate() ', was ich immer gemacht habe. –