0

我正在用 python 编写一个脚本来将不同文件夹中的图像合并到一个文件夹中。可能存在多个具有相同名称的图像文件。如何在python中处理这个?我需要像这样用“image_name_0001”、“image_name_0002”重命名那些。

4

2 回答 2

2

您可以维护一个dict到目前为止已经看到的名称的计数,然后用于os.rename()将文件重命名为这个新名称。

例如:

dic = {}
list_of_files = ["a","a","b","c","b","d","a"]
for f in list_of_files:
    if f in dic:
        dic[f] += 1
        new_name = "{0}_{1:03d}".format(f,dic[f])
        print new_name
    else:
        dic[f] = 0
        print f

输出:

a
a_001
b
c
b_001
d
a_002
于 2013-05-14T15:23:12.940 回答
0

如果你有根文件名,即 name = 'image_name',扩展名,extension = '.jpg' 和输出文件夹的路径,path,你可以这样做:

*for each file*:
    moved = 0
    num = 0
    if os.path.exists(path + name + ext):
        while moved == 0:
            num++
            modifier = '_00'+str(num)
            if not os.path.exists(path + name + modifier + extension):
                *MOVE FILE HERE using (path + name + modifier + extension)*
                moved = 1
    else:
        *MOVE FILE HERE using (path + name + ext)*

那里显然有几段伪代码,但你应该明白要点

于 2013-05-14T15:27:30.163 回答