我想将以前从多个子文件夹复制的图像重命名为该图像来自的子文件夹的名称。使用我的实际代码,当我输入实际的文件名时,我只能重命名图像。但是这个名字总是变化的。
例如:
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)
希望您能理解我的意思。
答案 0 :(得分:0)
您尝试过这样的事情
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
答案 1 :(得分:0)
我找到了解决方法:
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)