Renommer les noms de fichier contenant des espaces
Je suis en train d'écrire un simple script Python pour renommer tous les fichiers dans un répertoire de remplacer tous les espaces dans le nom de fichier avec des traits d'union. J'ai le texte suivant, qui est de s'écraser sur les os.renommer
import os
path = os.getcwd()
filenames = os.listdir(path)
for filename in filenames:
os.rename(os.path.join(path + filename), os.path.join(path + filename.replace(" ", "-")))
Donne l'erreur dans la console:
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
OSError: [Errno 2] No such file or directory
Toutes les idées sur le pourquoi de ce qui se passe?
InformationsquelleAutor igniteflow | 2011-09-19
Vous devez vous connecter pour publier un commentaire.
Je pense que c'est juste parce que vous avez la syntaxe de mal à votre appel à l'os.chemin d'accès.rejoindre, les éléments que vous êtes à joindre doivent être fournis en deux arguments distincts, séparés par une virgule. Cela fonctionne bien pour moi:
Si vous êtes déjà dans le répertoire qui contient les fichiers que vous souhaitez renommer, vous n'avez pas besoin de donner le chemin d'accès absolu:
os.path.join
-- vous concaténer une chaîne littérale avec +, au lieu de passer d'une liste séparée par des virgules -- mais puisque c'est redondant, prendre juste.