Comment faire pour effacer le contenu du fichier de fichier texte en Python?
J'ai fichier texte que je veux effacer en Python. Comment dois-je faire?
- les gens qui ont donné les réponses ont dit qu'il n'est pas possible .. alors voulez-vous me dire comment le faire facilement en python?
Vous devez vous connecter pour publier un commentaire.
En python:
Ou sinon, si vous avez déjà un fichier ouvert:
En C++, vous pouvez utiliser quelque chose de similaire.
#include<fstream>
et puisstd::ofstream("file.txt");
sur court comme en Python. 🙂Pas une réponse complète en plus d'une extension de ondra la réponse de
Lors de l'utilisation de
truncate()
( ma méthode préférée ) assurez-vous que votre curseur est à la position requise.Lorsqu'un nouveau fichier est ouvert en lecture -
open('FILE_NAME','r')
c'est le curseur est à 0 par défaut.Mais si vous avez analysé le fichier dans votre code, assurez-vous de placer au début du fichier de nouveau je.e
truncate(0)
Par défaut
truncate()
tronque le contenu d'un fichier à partir de l'actuel cusror position.Un exemple simple
L'ouverture d'un fichier en "écriture" efface-il, vous n'avez pas spécifiquement à écrire pour elle:
(vous devez le fermer comme le moment où le fichier est automatiquement fermée peut être mise en œuvre spécifique)
Vous devez remplacer le fichier. En C++:
close()
appel. Le destructeur va fermer le fichier. Donc, vous avez juste besoin de créer un temporaire:ofstream("test.txt");
De l'utilisateur @jamylak une forme alternative de
open("filename","w").close()
estLors de l'utilisation de
with open("myfile.txt", "r+") as my_file:
, j'ai d'étranges zéros dansmyfile.txt
, surtout depuis que je suis à la lecture du premier fichier. Pour que cela fonctionne, j'ai dû d'abord modifier le pointeur demy_file
au début du fichier avecmy_file.seek(0)
. Ensuite, j'ai pu fairemy_file.truncate()
pour effacer le fichier.Attribuant le pointeur de fichier à la valeur null à l'intérieur de votre programme va simplement se débarrasser de cette référence au fichier. Le fichier est toujours là. Je pense que le
remove()
fonction dans le cstdio.h
est ce que vous cherchez là. Pas sûr au sujet de Python.Si la sécurité est importante pour vous, puis d'ouvrir le fichier pour l'écriture et la fermeture de nouveau ne sera pas suffisant. Au moins une partie de l'information sera toujours sur le périphérique de stockage et peut être trouvé, par exemple, à l'aide d'un utilitaire de récupération de disque.
Supposons, par exemple, le fichier vous effacez contient de la production de mots de passe et doit être supprimé immédiatement après la présente opération est terminée.
Zéro de remplissage le fichier une fois que vous avez fini de l'utiliser, il permet de s'assurer que l'information sensible est détruit.
Sur un récent projet, nous avons utilisé le code suivant qui fonctionne bien pour les petits fichiers texte. Il remplace le contenu actuel avec des lignes de zéros.
Noter que zéro de remplissage ne sera pas de garantir votre sécurité. Si vous êtes vraiment intéressé, vous seriez mieux de remplir de zéros et utiliser un spécialiste de l'utilitaire comme Destructeur De Fichier ou CCleaner à essuyer le "vide" de l'espace sur votre disque.
On ne peut pas "effacer" à partir d'un fichier en place, sauf si vous avez besoin d'effacer la fin. Soit se contenter d'une opération de remplacement d'un "vide" de la valeur, ou de lire les pièces du dossier que vous vous souciez et de l'écrire dans un autre fichier.
Depuis des fichiers texte sont séquentiels, vous ne pouvez pas effacer des données sur eux. Vos options sont les suivantes:
Regarder la
seek
/truncate
fonction/méthode à mettre en œuvre toutes les idées ci-dessus. Python et C ont ces fonctions.os.remove
ouos.unlink
en python, ouunlink
dans C. une Autre option est de simplement rouvrir le fichier pour l'écriture ou de l'utilisationtruncate
.