10 ответов:
использовать
os.rename:import os os.rename('a.txt', 'b.kml')
import shutil shutil.move('a.txt', 'b.kml')Это будет работать, чтобы переименовать или переместить файл.
файл может находиться внутри каталога, в этом случае укажите путь:
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)Это находится в документах Python:http://docs.python.org/library/os.html
начиная с Python 3.4 можно использовать pathlib модуль для решения этой проблемы.
если вы находитесь на более старой версии, вы можете использовать backported найденную версию здесь
предположим, что вы не находитесь в корневом пути (просто чтобы добавить к нему немного сложности), который вы хотите переименовать, и должны предоставить полный путь, мы можем посмотреть на это:
some_path = 'a/b/c/the_file.extension'Итак, вы можете взять свой путь и создать
Pathобъект из это:from pathlib import Path p = Path(some_path)просто чтобы предоставить некоторую информацию вокруг этого объекта у нас есть сейчас, мы можем извлечь вещи из него. Например, если по какой-либо причине мы хотим переименовать файл, изменив имя файла с
the_fileдоthe_file_1, то мы можем получить имя части:name_without_extension = p.stemи все еще держите расширение в руке:
ext = p.suffixмы можем выполнить нашу модификацию с помощью простой Строковой манипуляции:
new_file_name = "{}_{}".format(name_without_extension, 1)и теперь мы можем выполните наше переименование, вызвав
renameметод на пути объекта, который мы создали и добавлениеextдля завершения правильной структуры переименования мы хотим:p.rename(Path(p.parent, new_file_name + ext))короче, чтобы продемонстрировать свою простоту:
from pathlib import Path p = Path(some_path) p.rename(Path(p.parent, "{}_{}".format(p.stem, 1) + p.ext))
использовать
os.rename. Но вы должны передать полный путь обоих файлов к функции. Если у меня есть файлa.txtна моем рабочем столе, так что я буду делать и я, чтобы дать полный переименованный файл тоже.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)
вы можете использовать ОС.система для вызова терминала для выполнения задачи:
os.system('mv oldfile 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")это должно помочь. 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)
Comments