Пакетное переименование файлов в каталоге - PullRequest
92 голосов
/ 22 октября 2008

Есть ли простой способ переименовать группу файлов, уже содержащихся в каталоге, используя Python?

Пример: У меня есть каталог, полный * .doc файлов, и я хочу переименовать их согласованным образом.

X.doc -> "new (X) .doc"

Y.doc -> "new (Y) .doc"

Ответы [ 12 ]

1 голос
/ 17 августа 2017

что касается меня, в моем каталоге есть несколько вложенных папок, в каждом вложенном каталоге много изображений, я хочу изменить все изображения вложенных папок на 1.jpg ~ n.jpg

def batch_rename():
    base_dir = 'F:/ad_samples/test_samples/'
    sub_dir_list = glob.glob(base_dir + '*')
    # print sub_dir_list # like that ['F:/dir1', 'F:/dir2']
    for dir_item in sub_dir_list:
        files = glob.glob(dir_item + '/*.jpg')
        i = 0
        for f in files:
            os.rename(f, os.path.join(dir_item, str(i) + '.jpg'))
            i += 1

(мой собственный ответ) https://stackoverflow.com/a/45734381/6329006

0 голосов
/ 09 января 2019

Этот код будет работать

Функция точно принимает два аргумента f_patth в качестве вашего пути для переименования файла и new_name в качестве вашего нового имени для файла.

import glob2
import os


def rename(f_path, new_name):
    filelist = glob2.glob(f_path + "*.ma")
    count = 0
    for file in filelist:
        print("File Count : ", count)
        filename = os.path.split(file)
        print(filename)
        new_filename = f_path + new_name + str(count + 1) + ".ma"
        os.rename(f_path+filename[1], new_filename)
        print(new_filename)
        count = count + 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...