Comment renommer un fichier en utilisant Python
10 réponses
import shutil
shutil.move('a.txt', 'b.kml')
cela fonctionnera pour renommer ou déplacer un fichier.
fichier peut être à l'intérieur d'un répertoire, dans ce cas précisez le chemin:
import os
old_file = os.path.join("directory", "a.txt")
new_file = os.path.join("directory", "b.kml")
os.rename(old_file, new_file)
os.rename(old, new)
cela se trouve dans les docs Python: http://docs.python.org/library/os.html
depuis Python 3.4 on peut utiliser le module pathlib pour résoudre ce problème.
si vous êtes sur une version plus ancienne, vous pouvez utiliser la version rétroportée trouvée ici
supposons que vous n'êtes pas dans le chemin racine (juste pour y ajouter un peu de difficulté) que vous voulez renommer, et que vous devez fournir un chemin complet, nous pouvons regarder ceci:
some_path = 'a/b/c/the_file.extension'
Donc, vous pouvez prendre votre chemin et de créer un Path
objet:
from pathlib import Path
p = Path(some_path)
juste pour fournir quelques informations sur cet objet que nous avons maintenant, nous pouvons en extraire des choses. Par exemple, si pour une raison quelconque nous voulons renommer le fichier en modifiant le nom du fichier de the_file
à the_file_1
, alors nous pouvons obtenir la partie nom du fichier:
name_without_extension = p.stem
et encore tenir l'extension en main aussi bien:
ext = p.suffix
nous peut effectuer notre modification avec une simple manipulation de chaîne:
new_file_name = "{}_{}".format(name_without_extension, 1)
et maintenant nous pouvons effectuer notre renommage en appelant la méthode rename
sur l'objet path que nous avons créé et en ajoutant le ext
pour compléter la structure de renommage appropriée que nous voulons:
p.rename(Path(p.parent, new_file_name + ext))
en peu de temps pour montrer sa simplicité:
from pathlib import Path
p = Path(some_path)
p.rename(Path(p.parent, "{}_{}".format(p.stem, 1) + p.ext))
utiliser os.rename
. Mais vous devez passer le chemin complet des deux fichiers à la fonction. Si j'ai un fichier a.txt
sur mon bureau donc je vais le faire et aussi je dois donner plein de fichier renommé trop.
os.rename('C:\Users\Desktop\a.txt', 'C:\Users\Desktop\b.kml')
import os
# Set the path
path = 'a\b\c'
# save current working directory
saved_cwd = os.getcwd()
# change your cwd to the directory which contains files
os.chdir(path)
os.rename('a.txt', 'b.klm')
# moving back to the directory you were in
os.chdir(saved_cwd)
import shutil
import os
files = os.listdir("./pics/")
for key in range(0, len(files)):
print files[key]
shutil.move("./pics/" + files[key],"./pics/img" + str(key) + ".jpeg")
ça devrait le faire. python 3 +
import os
import re
from pathlib import Path
for f in os.listdir(training_data_dir2):
for file in os.listdir( training_data_dir2 + '/' + f):
oldfile= Path(training_data_dir2 + '/' + f + '/' + file)
newfile = Path(training_data_dir2 + '/' + f + '/' + file[49:])
p=oldfile
p.rename(newfile)