Je veux changer a.txt
à b.kml
.
Utilisez os.rename
:
import os
os.rename('a.txt', 'b.kml')
import shutil
shutil.move('a.txt', 'b.kml')
Cela fonctionnera pour renommer ou déplacer un fichier.
Le fichier peut se trouver dans un répertoire, dans ce cas, spécifiez 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 documents Python: http://docs.python.org/library/os.html
À partir de Python 3.4, vous pouvez utiliser le module pathlib pour résoudre ce problème.
Si vous utilisez une ancienne version, vous pouvez utiliser la version backported trouvée ici
Supposons que vous n'êtes pas dans le chemin racine (juste pour 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'
Vous pouvez donc choisir votre chemin et créer un objet Path
:
from pathlib import Path
p = Path(some_path)
Juste pour fournir des 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 de fichier de the_file
à the_file_1
, alors nous pouvons obtenir la partie du nom de fichier:
name_without_extension = p.stem
Et tenez toujours l'extension en main aussi:
ext = p.suffix
Nous pouvons 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 de chemin que nous avons créé et en ajoutant la ext
pour compléter la structure de renommage appropriée que nous voulons:
p.rename(Path(p.parent, new_file_name + ext))
Plus rapidement pour montrer sa simplicité:
from pathlib import Path
p = Path(some_path)
p.rename(Path(p.parent, "{}_{}".format(p.stem, 1) + p.suffix))
Utilisez os.rename
. Mais vous devez passer le chemin complet des deux fichiers à la fonction. Si j'ai un fichier a.txt
sur mon bureau, je le ferai et je devrai également donner un fichier renommé.
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)
Vous pouvez utiliser os.system pour appeler un terminal afin d'accomplir la tâche:
os.system('mv oldfile newfile')
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)
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")
cela devrait le faire. python 3+