使用模式重命名文件

麦辛格

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条评论
登录后参与评论

相关文章

来自分类Dev

使用模式批量重命名文件

来自分类Dev

如何使用模式重命名文件集

来自分类Dev

重命名给定模式的文件

来自分类Dev

用模式重命名文件

来自分类Dev

如何使用批处理脚本使用模式重命名文件

来自分类Dev

使用带有特定模式的Gulp重命名文件

来自分类Dev

匹配模式后使用zmv命令重命名文件

来自分类Dev

使用foreach循环重命名文件夹匹配模式

来自分类Dev

使用重命名和 grep 模式在终端中重命名文件

来自分类Dev

使用重命名重命名文件

来自分类Dev

使用重命名重命名多个文件

来自分类Dev

使用重命名命令重命名文件

来自分类Dev

重命名文件模式Windows批处理

来自分类Dev

重命名多个文件,排除模式

来自分类Dev

根据模式批量重命名文件的命令

来自分类Dev

重命名文件模式Windows批处理

来自分类Dev

重命名bash中文件的特定模式

来自分类Dev

使用python重命名文件

来自分类Dev

使用R重命名文件

来自分类Dev

使用条件重命名文件

来自分类Dev

使用pathlib重命名文件

来自分类Dev

使用VBA重命名文件

来自分类Dev

使用Bash重命名文件

来自分类Dev

使用通配符重命名文件

来自分类Dev

使用 WinSCP 重命名文件

来自分类Dev

使用重命名来重命名文件和目录

来自分类Dev

通过使用模式和替换列表来递归重命名文件

来自分类Dev

按字典顺序重命名文件,其数字模式使用固定填充顺序增加

来自分类Dev

使用文件列表重命名多个文件