Переименуйте изображения в имя папки с помощью Python - PullRequest
0 голосов
/ 12 сентября 2018

Я хочу переименовать изображения, которые ранее были скопированы из нескольких подпапок, в имя подпапки, из которой было получено изображение. С моим реальным кодом я могу переименовывать только изображения, когда я ввожу реальное имя файла. Но это имя всегда меняется.

Например:

C:/sub/folder/1/

переименуйте эти изображения из этой папки в 1.jpg

Мой фактический код:

paths = (os.path.join(root, filename)
for root, _, filenames in os.walk(dir_dst):
    for filename in filenames:        
        for path in paths:
            newname= path.replace('image_name','new_image_name')
            if newname != path:
                os.rename(path, newname)

Надеюсь, вы понимаете, о чем я.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Я нашел решение:

import os, shutil

src_g = os.getcwd()
dst_g0 = src_g.split('\\')
dst_g0.pop()
dst_g = '\\'.join(dst_g0)+'\\DestinationFolder\\'

for i in os.listdir(src_g):
    if os.path.isdir(i):
        name = i
        neuer_pfad = src_g+'\\'+name+'\\folder_with_images\\'
        for j in os.listdir(neuer_pfad):
            neue_datei = neuer_pfad+j
            if os.path.isfile(neue_datei):
                shutil.copyfile(neue_datei, dst_g+name+'_'+j)
0 голосов
/ 13 сентября 2018

Вы пробовали что-то подобное

x = os.path.abspath('file_to_rename')
x = os.path.dirname(x)
x = os.path.basename(x)

Это установит имя текущей папки на x. Оттуда вы можете создать некоторый инкрементный цикл с i и переименовать ваши файлы в

os.rename('file_to_rename', x + '_' + str(i))

, а затем просто увеличить i += 1

...