File 查找文件夹中的所有图像文件并使用编号更改其名称

File 查找文件夹中的所有图像文件并使用编号更改其名称,file,File,假设我们有以下文件 00043.jpg 00086.jpg 00123.jpg 04523.jpg 我想要的是,把他们的名字改成如下 00001.jpg 00002.jpg 00003.jpg 诸如此类 如何在linux控制台上执行此操作? 或者我可以使用python脚本。提供有效的文件夹路径并运行此代码 import os # Function to rename multiple files def main(): i = 0 path = 'E:\\files\\

假设我们有以下文件

00043.jpg

00086.jpg

00123.jpg

04523.jpg

我想要的是,把他们的名字改成如下

00001.jpg

00002.jpg

00003.jpg

诸如此类

如何在linux控制台上执行此操作?
或者我可以使用python脚本。

提供有效的文件夹路径并运行此代码

import os 

# Function to rename multiple files 
def main(): 
    i = 0
    path = 'E:\\files\\'    
    for filename in os.listdir("E:\\files"): 
        dst = str(i).zfill(4) + ".jpg"
        src = path + filename 
        dst = path + dst 

        # rename() function will 
        # rename all the files 
        os.rename(src, dst) 
        i += 1

# Driver Code 
if __name__ == '__main__': 

    # Calling main() function 
    main() 

如果控制台中有PHP

<?php
$images = glob("*.jpg");

$start=0;
function squencer()
{
    global $start;
    ++$start;

    return str_pad($start, 5, "0", STR_PAD_LEFT);
}

foreach($images as $image)
{
    $newname = squencer().".jpg";
    rename($image, $newname);
}

重命名文件的唯一标准命令是mv,它的功能非常有限。您想要做的事情本质上需要一个脚本,因为顺序命名的复杂性超出了globbing甚至正则表达式的能力。您尚未指定目录中是否有其他文件,或者是否关心原始顺序。与Windows不同,Linux目录内容的顺序不可预测。我想你确实想维持原来的秩序。您的示例指示0-padding。这是一个重要的细节。这意味着词汇排序符合我们的直觉,例如43>42。词汇上,43>42,但42>043。我将向您展示如何使用Python实现这一点,假设目录包含其他文件,并且您希望保持原始顺序。第一行是shebang,告诉操作系统使用python3。这尤其适用于Ubuntu,但大多数系统都需要它或其变体,因为它们默认使用Python2。此外,尽管Python不关心脚本中的行尾是什么类型,但操作系统本身读取shebang,并且它要求这些是Unix

#!/usr/bin/env python3
import os
jpgfiles = [f for f in os.listdir() if os.path.splitext(f)[1].casefold() == jpg']
jpgfiles.sort()
for i,f in enumerate(jpgfiles) :
    os.rename(f, '%04.d' % i + '.jpg')

Python固有的功能使这样一个简单的脚本能够执行相当复杂的操作。但是,您不想为可能要进行的每种文件重命名都编写脚本。当我找不到一个现有的程序来进行我所做的各种重命名时,我编写了一个Python程序,它可以做你想做的事情,甚至更多。我是雷内·皮。您可以在Sourceforge获得它。它是免费的、开源的(GNU GPL v3.0)。执行所需操作的命令是rene*.jpg:.jpg I///5

可能重复使用Python重命名目录中的多个文件。。。这是非常基本的东西,你可以找到用谷歌(甚至stackoverflow)做这件事的教程。如果您找到了一种方法,但对您无效,请发布您尝试过的代码以及出现的错误。@Jun我已在下面发布了我的答案,请尝试一下!:)您如何确定从
listdir
返回的订单与OP期望的订单匹配?你是不是在没有先检查的情况下直接从极客那里窃取了这段代码?我不想剽窃答案,我只是直接引用了链接。也许它能在某些方面有所帮助!