Le comportement de truncate() la méthode en Python
C'est à partir de exercice 16 de Zed Shaw Python tutoriels. Je vais avoir un moment difficile la compréhension de ce qu'est exactement le truncate
fonction n'est dans ce cas. Ainsi, la logique est que l'on ouvre un fichier et puis...le raccourcir? Pour quoi faire? Ce qui se passe exactement ici?
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()
Avez-vous suivi l'étude de l'exercice cinq? Ce qui, précisément, ne comprenez-vous pas?
OriginalL'auteur J82 | 2014-11-13
Vous devez vous connecter pour publier un commentaire.
Tu as raison d'être méfiant.
D'abord,
fichier.tronquer
fait ceci:Pas tout à fait la même que Zed description—il seulement "vide le fichier" si la position actuelle est le début du fichier—mais puisque nous venons d'ouvrir le fichier (et non pas dans
a
mode), la position actuelle est le début, donc ce n'est pas pertinente. Nous sommes à tronquer un fichier vide.Qui est bien et bon, sauf que
ouvrir
déjà fait:Donc, nous allons ouvrir le fichier, de le créer si il n'existe pas et la tronquant à 0 octets si elle n'. Puis, sur la ligne suivante, nous tronquer à 0 octets.
(Que "le fait de Tronquer le fichier. Au revoir!" message est assez trompeur, puisque nous avons déjà tronquée. Imaginez que vous mettez un point d'arrêt sur cette ligne et a décidé de tuer le programme avant de l'exécuter...)
Mais remarquez que ce n'est pas une stupide erreur par Zed; il semble avoir fait concrètement pour faire le point dans l'étude de forage #5:
truncate
en Python 2.x...OriginalL'auteur abarnert
Je suis actuellement en train de passer par Zed Shaw du livre. Souvent. quand il vous donne des problèmes comme ceux-ci, il est l'incitation de vous déconner avec les différents éléments de votre code pour voir ce qu'ils font. N'hésitez pas à supprimer des choses comme cible.truncate() et exécutez de nouveau le programme. Comme abarnert dit, il y a une façon de faire de tronquer ne supprimer qu'une partie du fichier. De quitter ce trou dans vos connaissances, à la façon d'obtenir des résultats différents avec ces deux options, est là pour vous embêter à faire de la recherche indépendante. C'est un moyen très efficace d'infecter le lecteur avec curiosité. Prendre un coup d'oeil comment ajouter des œuvres en Python et voir si vous pouvez faire truncate() supprimer uniquement la dernière ligne de votre fichier de test. N'ayez pas peur de casser votre code. "Si vous voulez augmenter votre taux de réussite, de doubler votre taux de défaillance". (Thomas J. Watson, ancien PDG d'IBM)
OriginalL'auteur derek brown