使用模式重命名文件

麦辛格

Python初学者在这里。

我有一个目录,其中包含成百上千个名为(按顺序)的图像文件:

002_IMG_001、002_IMG_002、002_IMG_003、002_IMG_N

现在,我正在尝试重命名这些图像,以使连续的五个文件从1:5开始具有“ N”,也就是说,每五个连续的图像集都将N从1变为5。我也想粘贴另一个字符串在数字“ N”之前。此字符串将跟踪N个图像集,例如IMG_001_1,IMG_001_2,.. IMG_001_N,IMG_002_1,IMG_002_2,... IMG_00X_N

在Mac上的python 2.7.10上的伪代码如下所示:

import os

myDir = "/Users/path/to/dir/"
fileList = os.listdir(myDir)

for filename in fileList :
    #split the images into sets of five each
    newFile = 'IMG_' + '00' + X + '_' + N
        #loop through images and rename
            os.rename(fileName, newFile)

我想我需要for循环内部的条件,例如:

 if int(filename[9:12]) % 5 == 0

但这意味着,我必须为1到5创建五个单独的条件,这似乎不正确。任何提示将不胜感激?

编辑:尚不清楚需要什么类型的输出。我正在寻找一个函数来获取最终文件名,例如:IMG_001_1,IMG_001_2,... IMG_001_5,IMG_002_1,IMG_002_2,... IMG_002_5,...

我认为这应该工作:

my_list = ["002_IMG_001", "002_IMG_002", "002_IMG_003", "002_IMG_004", "002_IMG_005",
       "002_IMG_006", "002_IMG_007", "002_IMG_008", "002_IMG_009", "002_IMG_0010",
       "002_IMG_011", "002_IMG_012", "002_IMG_013", "002_IMG_014", "002_IMG_015",
       "002_IMG_016", "002_IMG_017", "002_IMG_018", "002_IMG_019", "002_IMG_0020",
       ]
fileList.sort()

print("Original list:\n")
print(fileList)

new_list = []

for index, old_file_name in enumerate(fileList):
    group, subgroup = divmod(index,5)
    group, subgroup = group + 1, subgroup + 1
    new_file_name = "IMG_{0:03d}_{1}".format(group, subgroup)
    new_list.append(new_file_name)

    os.rename(old_file_name, new_file_name)

print("\nNew list:\n")
print (new_list)

这是输出:

Original list:

['002_IMG_001', '002_IMG_002', '002_IMG_003', '002_IMG_004', '002_IMG_005', 
'002_IMG_006', '002_IMG_007', '002_IMG_008', '002_IMG_009', '002_IMG_0010', 
'002_IMG_011', '002_IMG_012', '002_IMG_013', '002_IMG_014', '002_IMG_015', 
'002_IMG_016', '002_IMG_017', '002_IMG_018', '002_IMG_019', '002_IMG_0020']

New list:

['IMG_001_1', 'IMG_001_2', 'IMG_001_3', 'IMG_001_4', 'IMG_001_5', 
'IMG_002_1', 'IMG_002_2', 'IMG_002_3', 'IMG_002_4', 'IMG_002_5', 
'IMG_003_1', 'IMG_003_2', 'IMG_003_3', 'IMG_003_4', 'IMG_003_5', 
'IMG_004_1', 'IMG_004_2', 'IMG_004_3', 'IMG_004_4', 'IMG_004_5']

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章