将 python 的文件重命名为 1.jpg、2.jpg 等

Renaming files with python to 1.jpg, 2.jpg, etc

首先我想说我想在 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

您的方法的一个问题是 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