Programme en Python pour renommer les noms de fichiers, tandis que d'écraser si il y a déjà des fichiers
Comme le dit le titre, je voulais un programme en python qui modifie le nom du fichier, mais j'ai voulu le remplacer si il y a déjà un fichier avec un nom de destination.
import os, sys
original = sys.argv[1]
output = sys.argv[2]
os.rename(original, output)
Mais mon code m'indique cette erreur lorsqu'il existe déjà un fichier avec un nom de destination.
os.rename<original, output>
WindowsError: [Error 183] Cannot create a file when that file already exists
Ce correctif doit-je faire?
Supprimer le fichier et essayez à nouveau?
OriginalL'auteur user42459 | 2015-05-11
Vous devez vous connecter pour publier un commentaire.
Sur Windows
os.rename
de ne pas remplacer le fichier de destination s'il existe. Vous devez l'enlever en premier. Vous pouvez intercepter l'erreur et essayer de nouveau après le retrait du fichier:OriginalL'auteur sirfz
Vous pouvez utiliser shutil.déplacer, il va écraser sur windows:
Démo:
il remplace le fichier de destination, si vous déplacez un fichier avec le même nom, vous verrez
OriginalL'auteur Padraic Cunningham
Cette erreur se produit uniquement sur windows, que vous pouvez trouver dans la documentation python ( https://docs.python.org/2/library/os.html#os.rename )
Vous devez vérifier s'il existe déjà un fichier ou un dossier sur la destination, avec le code suivant:
Voir aussi cette réponse: https://stackoverflow.com/a/84173/955026
Si le fichier existe, enlever d'abord avant de renommer le fichier d'origine. Bien sûr, vous devriez vérifier si vous ne supprimez pas le fichier d'origine (donc
script.py file1 file1
ne devez pas supprimer le fichier fichier1).OriginalL'auteur Snicksie
*Veuillez trouver ci-dessous la démarche que j'ai suivi et il fonctionne très bien *
Il va écraser le fichier existant avec de nouvelles données si elle existe déjà.
OriginalL'auteur Shabir