【问题标题】:How to rename JPG files with running order using Python如何使用 Python 以运行顺序重命名 JPG 文件
【发布时间】:2016-10-08 07:00:04
【问题描述】:

我是 Python 编程的新手,我尝试重命名 100 个扩展名为“.jpg”的文件,这些文件位于使用 pyhthon 的特定文件夹中。

我需要通过从数字 1 开始运行命令来重命名文件。这是我开始编写的代码:

import os,glob,fnmatch

os.chdir(r"G:\desktop\Project\test")
for files in glob.glob("*.jpg"):
    print files

当我运行它时,我得到:

>>> 
er3.jpg
IMG-20160209-ssdeWA0000.jpg
IMG-20160209-WA0000.jpg
sd4.jpg
tyu2.jpg
uj7.jpg
we3.jpg
yh7.jpg
>>> 

所以代码,到目前为止还可以。

例如我的文件夹是:

我需要所有文件名都是: 1,2,3,4 - 带有运行订单名称。 python 2.7可以吗?

【问题讨论】:

  • for filename in sorted(glob.glob("*jpg")): 也许?

标签: python-2.7 file rename


【解决方案1】:

重命名特定文件夹中的所有 JPG 文件首先,获取该文件夹中包含的所有文件的列表。

os.listdir 会给你列出图片路径中的所有文件。

使用enumerate 获取索引号以获取新名称 图片。

import os
images_path = r"D:\shots_images"
image_list = os.listdir(images_path)
for i,  image in enumerate(image_list):
    ext = os.path.splitext(image)[1]
    if ext == '.jpg':
        src = images_path + '/' + image
        dst = images_path + '/' + str(i) + '.jpg'
        os.rename(src, dst)

【讨论】:

    【解决方案2】:

    如果您只是想将所有文件重命名为1.jpg2.jpg 等,您可以这样做:

    import os
    import glob
    
    os.chdir(r"G:\desktop\Project\test")
    for index, oldfile in enumerate(glob.glob("*.jpg"), start=1):
        newfile = '{}.jpg'.format(index)
        os.rename (oldfile,newfile)
    

    enumerate()用于从glob()返回的列表中获取每个文件的索引,以便用于创建新的文件名。注意它允许你指定起始索引,所以我从1开始,而不是Python标准,零

    如果您希望此文件列表可以正确排序,您还希望文件名也用零填充(001.jpg 等)。在这种情况下,只需将newfile = '{}.jpg'.format(index)' 替换为newfile = '{:03}.jpg'.format(index)

    有关str.format() 的更多信息,请参阅the docs

    【讨论】:

    • 是否可以调整它以处理 jpg 和 png?
    • @Maverick:当然。不幸的是,glob.glob() 一次只能匹配一个扩展名,但您可以轻松地运行循环两次,用jpg 替换png。还有其他更有效的方法,这在很大程度上取决于您想要的输出是什么。
    【解决方案3】:
    import os
    from os import path
    os.chdir("//Users//User1//Desktop//newd//pics")
    
    for file in os.listdir():
        name,ext=path.splitext(file)
        if ext == '.jpeg':
            dst= '{}.jpg'.format(name)
            os.rename(file,dst)
    

    【讨论】:

    • 您好,欢迎来到 SO!虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。请阅读tourHow do I write a good answer?
    猜你喜欢
    • 2017-09-30
    • 2016-10-09
    • 1970-01-01
    • 2012-02-21
    • 2017-04-10
    • 1970-01-01
    • 2021-09-01
    • 2021-04-29
    • 2015-03-09
    相关资源
    最近更新 更多