Verhalten von truncate () - Methode in Python
Dies ist aus übung 16 von Zed Shaw hat den Python-tutorials. Ich habe eine harte Zeit zu verstehen, was genau die truncate
- Funktion funktioniert in diesem Fall. Also die Logik ist, dass wir eine Datei öffnen, und dann...verkürzen es? Für das, was? Was genau ist hier passiert?
from sys import argv
script, filename = argv
print "We're going to erase %r." % filename
print "If you don't want that, hit CTRL-C (^C)."
print "If you do want that, hit RETURN."
raw_input("?")
print "Opening the file..."
target = open(filename, 'w')
print "Truncating the file. Goodbye!"
target.truncate()
print "Now I'm going to ask you for three lines."
line1 = raw_input("line 1: ")
line2 = raw_input("line 2: ")
line3 = raw_input("line 3: ")
print "I'm going to write these to the file."
target.write(line1 + "\n" + line2 + "\n" + line3 + "\n")
print "And finally, we close it."
target.close()
- Haben Sie gefolgt Studie bohren Sie fünf? Was genau verstehen Sie nicht?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du hast Recht misstrauisch zu sein.
Erste,
- Datei.truncate
tut:Nicht ganz das gleiche wie Zed ' s Beschreibung—es nur "leert die Datei", wenn die aktuelle position den Anfang der Datei, aber da wir gerade die Datei geöffnet hat (und nicht in
a
- Modus), wird die aktuelle position ist der start, so dass ist nicht relevant. Wir sind mit dem abschneiden, um eine leere Datei.Das ist alles schön und gut, außer, dass
open
bereits tut:Also, öffnen wir die Datei, erstellen wenn es nicht vorhanden ist, und das abschneiden von 0 Byte, wenn es funktioniert. Dann, auf der nächsten Zeile, wir kürzen Sie auf 0 bytes.
(Das "Abschneiden der Datei. Auf Wiedersehen!" - Meldung ist ziemlich irreführend, da haben wir schon abgeschnitten es. Stellen Sie sich vor Sie setzen einen breakpoint auf diese Zeile und beschlossen, zu töten das Programm vor der Ausführung...)
Aber feststellen, dass dies nicht einige dumme Fehler von Zed; er erscheint, getan zu haben, dies speziell zu machen, den Punkt in der Studie drill #5:
truncate
in Python 2.x...Ich bin derzeit in Zed Shaw ' s Buch zu. Oft. wenn er dir Probleme wie diese, er zwingt Sie in das Herumspielen mit den verschiedenen Elementen Ihren code, um zu sehen, was Sie tun. Fühlen Sie sich frei, zu löschen, Dinge wie den Gegner.truncate() und führen Sie das Programm erneut. Als abarnert sagt, es ist ein Weg, um truncate entfernen Sie nur einen Teil der Datei. Verlassen Sie dieses Loch in Ihrem wissen, wie Sie unterschiedliche Ergebnisse erhalten, die mit diesen beiden Optionen, gemeint ist, um Sie zu ärgern, zu tun, einige unabhängige Forschung. Es ist eine sehr effektive Art der Infizierung der Leser mit Neugier. Werfen Sie einen Blick, wie append funktioniert in Python und sehen Sie, ob Sie truncate() entfernen Sie nur die Letzte Zeile der Datei test. Haben Sie keine Angst zu brechen, Ihren code. "Wenn Sie wollen steigern Sie Ihre Erfolgsquote, verdoppeln Sie Ihre Ausfallrate." (Thomas J. Watson, ehemaliger Vorstandsvorsitzender von IBM)