【问题标题】:Renaming files with python to 1.jpg, 2.jpg, etc使用 python 将文件重命名为 1.jpg、2.jpg 等
【发布时间】:2017-09-30 10:40:49
【问题描述】:

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

【问题讨论】:

  • 谷歌搜索“目录中的 python 列表文件”和“python 重命名文件”应该是一个很好的起点......不应该太难找到
  • “我得到的最好的是 601.jpg、601.jpg,而且每个文件都一样。” 很有趣。请发布执行此操作的代码。虽然它没有用,但它会成为一个有用的起点。
  • @Kevin 我刚刚添加了我的代码!
  • 相同代码和问题here的可能重复。

标签: python python-2.7 batch-rename


【解决方案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

【讨论】:

    猜你喜欢
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    相关资源
    最近更新 更多