la suppression du fichier, si elle existe; python
Je veux créer un fichier; si elle existe déjà, je veux la supprimer et d'en créer de nouveau. J'ai essayé de faire comme cela, mais il déclenche une erreur Win32. Ce que je fais mal?
try:
with open(os.path.expanduser('~') + '\Desktop\input.txt'):
os.remove(os.path.expanduser('~') + '\Desktop\input.txt')
f1 = open(os.path.expanduser('~') + '\Desktop\input.txt', 'a')
except IOError:
f1 = open(os.path.expanduser('~') + '\Desktop\input.txt', 'a')
OriginalL'auteur Yui | 2013-04-23
Vous devez vous connecter pour publier un commentaire.
Vous essayez de supprimer un fichier ouvert, et les docs pour
os.remove()
état...Vous pouvez modifier le code pour...
...ou vous pouvez remplacer tous avec...
...qui va tronquer le fichier de longueur zéro avant l'ouverture.
os.path.exists
avant de l'enlever c'estUn autre programme fonctionne peut-être sur le fichier et supprime juste après
os.path.exists
évalue àTrue
.Comment est-il maintenant?
Oh oui c'est bon maintenant, je me suis rendu compte après que j'ai écrit le mien, vous pourriez utiliser
'w'
mais j'ai eu ça avantplus sûr moyen de faire ceci: stackoverflow.com/questions/10840533/...
OriginalL'auteur Aya
Vous pouvez ouvrir avec le paramètre mode = 'w'. Si le mode est omis, la valeur par défaut est "r".
Je ne comprends pas vous avez dit que vous voulez la supprimer si elle existe... s'il vous Plaît mettre à jour votre question avec no strings attached
Oui je veux la supprimer si elle existe déjà avant que je commence le script. Après la création de nouveau, j'ai plusieurs cordes qui s'attache dans le nouveau fichier
OriginalL'auteur ndpu
Vous essayez de supprimer le fichier alors qu'il est ouvert, vous n'avez même pas besoin que
with
là pour le supprimer:Supprime si il existe
OriginalL'auteur jamylak
Windows ne les laissez pas vous supprimez un fichier ouvert (sauf si il est ouvert avec des options de partage). Vous aurez besoin de la fermer avant de la supprimer:
OriginalL'auteur RichieHindle
Essayez ceci:
édité :
vous avez raison,j'ai édité ma réponse.
Il n'y a pas de condition de course, mais les
path.isfile(PATH)
est devenu effectivement redondantMerci, j'ai pensé qu'il serait la solution la plus sûre.Dans ce cas, je pense que ma solution sera exactement le même que l'Aya.
Il n'en est pas plus sûr que Aya. Votre solution juste fait deux chèques au lieu d'un seul, où le premier n'aide pas la sécurité de tous, seulement le deuxième n'
OriginalL'auteur Maryam Arshi