如何重命名文件夹中的图像

Pie*_*ter 4 python python-2.7

我有35个文件夹,每个文件夹包含50个图像,每个图像都有不同的名称,如copy(3), rename, youanem,等等.我想将所有文件夹中的所有图像重命名为序列号,即文件夹0包含50个图像,它应该为它们提供0-49之类的数字,并为其余文件夹及其图像提供相同的数字.文件夹名称为0-9,然后是AZ.

这可以为它编程,或者我必须手动完成

这是我最初的尝试,我没有完全尝试:

from os import rename, listdir

folder = "D://images//"
fnames = listdir('.')

for fname in fnames:
    if fname.startswith(folder):
        rename(fname, fname.replace(name, '', 1))
Run Code Online (Sandbox Code Playgroud)

我不知道如何命名

谢谢

Sha*_*ank 7

这显示了如何对目录中的所有文件进行排序。例如,如果目录中有50个文件,它将把它们重命名为0-49。您还可以使用一些迭代器遍历文件夹名称,如下所示:

import os
for dirname in os.listdir("."):
    if os.path.isdir(dirname):
        for i, filename in enumerate(os.listdir(dirname)):
            os.rename(dirname + "/" + filename, dirname + "/" + str(i) + ".bmp")
Run Code Online (Sandbox Code Playgroud)


Joh*_*ohn 7

你可以使用 os.walk:

for root, dirs, files in os.walk(folder):
    for i,f in enumerate(files):
        absname = os.path.join(root, f)
        newname = os.path.join(root, str(i))
        os.rename(absname, newname)
Run Code Online (Sandbox Code Playgroud)

这应该完全符合您的要求。


小智 6

最简单,最简洁,遍历所有文件并使用索引重命名.

import os
os.getcwd()
collection = "C:/darth_vader"
for i, filename in enumerate(os.listdir(collection)):
    os.rename("C:/darth_vader/" + filename, "C:/darth_vader/" + str(i) + ".jpg")
Run Code Online (Sandbox Code Playgroud)