【问题标题】:Rename images to the folder name with Python使用 Python 将图像重命名为文件夹名称
【发布时间】:2018-09-12 08:13:17
【问题描述】:

我想将以前从多个子文件夹复制的图像重命名为图像来自的子文件夹的名称。使用我的实际代码,我只能在输入实际文件名时重命名图像。但是这个名字总是变化的。

例如:

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)

希望你明白我的意思。

【问题讨论】:

  • 您得到的具体错误或意外行为是什么?
  • 当前代码有效,但我只能说将图像“abc.jpg”重命名为“xyz.jpg”。但我想将不同的图像名称重命名为它们从中复制的文件夹的名称。
  • 您在同一个文件夹中有多个图像还是只有一个?
  • 并不总是一样的。有时只有一张照片,有时是四张照片。
  • 那么如果你在同一个子文件夹中有两张图片,它们都应该命名为1.jpg?名称应该是唯一的...

标签: python file-rename


【解决方案1】:

你有没有尝试过这样的事情

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

【讨论】:

    【解决方案2】:

    我找到了解决办法:

    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)
    

    【讨论】:

      猜你喜欢
      • 2018-11-30
      • 1970-01-01
      • 2020-06-29
      • 2021-12-04
      • 2015-04-17
      • 1970-01-01
      • 2022-11-13
      • 1970-01-01
      • 2017-12-12
      相关资源
      最近更新 更多