用python将文件重命名为1.jpg,2.jpg等

时间:2017-05-02 19:30:45

标签: python python-2.7 batch-rename

首先我想说我想在python 2.7中做到这一点!

嗨,我有一个充满图像的文件夹,名为1.jpg,2.jpg,3.jpg等。一直到600.jpg。

我想将它们重新命名为600,所以601.jpg,602.jpg,603.jpg等等。一直到1200.jpg。

老实说,我不太清楚从哪里开始,所以任何帮助都会有用。它不会像它应该很难接缝但我无法按升序命名它们。我得到的最好的是601.jpg,601.jpg,每个文件都是一样的。

这就是我目前的情况,它被改变了几次,现在我得到的只是一个错误。

import os
path = '/Users/antse/OneDrive/Documents/Instagram/set_2'
files = os.listdir(path)
i = 601

for file in files:
    os.rename(os.path.join(path, file), os.path.join(path, str(i)+'.jpg'))
    i = i+1

1 个答案:

答案 0 :(得分:1)

您的方法存在的一个问题是,listdir不会从1.jpg ...按顺序返回,它包含任何其他文件或子目录。但是没有必要列出目录 - 您已经知道要更改的内容的模式以及处理可能存在的其他文件的麻烦。

import os

path = '/Users/antse/OneDrive/Documents/Instagram/set_2'
for i in range(1, 601):
    old_name = os.path.join(path, '{}.jpg'.format(i))
    new_name = os.path.join(path, '{}.jpg'.format(i+600))
    try:
        os.rename(old_name, new_name)
    except OSError as e:
        print 'could not rename', old_name, e