python 图片重命名_python批量重命名文件

python 图片重命名_python批量重命名文件一个简单的python脚本,用于图片批量重命名,非常简单但是也非常使用!

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

**

python图片批量重命名

**
一个简单的python 脚本,用于图片批量重命名,非常简单但是也非常使用!

使用前记得搭建使用环境,下载相应的包

# -*- coding: utf-8
import os
import os.path
import shutil
from tqdm import tqdm

class Pathroot():

    def __init__(self, root, sort_methods):
        '''初始化文件路径'''
        self.root = root
        self.sort_methods = sort_methods

    def get_path(self):
        ''' 输入路径,获取输入路径下所有文件的完整列表,并以字符串排序'''
        path1 = []
        for parent, dirnames, filenames in os.walk(self.root):
            for filename in filenames:
                currentPath = os.path.join(parent, filename)
                path1.append(currentPath)
        if self.sort_methods == 'str':
            path1.sort(key=lambda x: str(os.path.basename(x).split('/')[-1][:-4]))
        elif self.sort_methods == 'int':
            path1.sort(key=lambda x: int(os.path.basename(x).split('/')[-1][:-4]))
        else:
            print('Please choose correct sort methods!!! str or int')
        return path1


def get_newroot(root, root1 ,name):
    '''在根目录下创建新的文件,返回新的路径并修改名称'''
    new_root = root +'/'+ str(name) +  pic_format
    return new_root


if __name__ == '__main__':

    input_path = input('Please enter the path to the folder : ')
    # 在当前文件夹创建新目录
    new_root = '/'.join(input_path.split('/')[:-1])+ '/new_data'
    os.mkdir(new_root)
    # 获取当前目录下所有图片路径
    path_root = Pathroot(input_path,'str')
    the_total_root = path_root.get_path()
    pic_format = the_total_root[0].split('/')[-1][-4:]
    print('The number of images under the path : {:^10}' .format(str(len(the_total_root))))
    # 重命名且保存在新的目录下
    for i in tqdm(range(len(the_total_root))):
        new_root_1 = get_newroot(new_root,pic_format,i)
        shutil.copy(the_total_root[i] , new_root_1)
    print('The program has ended, please check the results!!!')

终端运行结果如下:
在这里插入图片描述

如果对你有帮助的话,可以为我点个赞!

有什么问题的话,欢迎随时留言,看到必回!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197265.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Dell T40服务器系统安装问题[通俗易懂]

    Dell T40服务器系统安装问题[通俗易懂]问题安装系统找不到硬盘在正常安装系统2016时遇到无法找到驱动器,用此系统安装别的机器发现可以装,确定系统是好的,但是用这个系统安装T40服务器时就是找不到硬盘,具体解决步骤如下:首先重启电脑,进入bios界面,选择restoresettings,进入下拉框,在选择BIOSdefault,就行bios恢复出厂值,之后再重新安装就OK了解析:因为2016及以上版本的系统都是集成了软阵列的…

    2022年10月4日
    5
  • matlab画对数直方图,matlab中函数bar绘制直方图「建议收藏」

    matlab画对数直方图,matlab中函数bar绘制直方图「建议收藏」matlab中函数bar绘制直方图中的应用函数bar(x)可以绘制直方图,这对统计或者数据采集非常直观实用。它共有四种形式:bar,bar3,barh和bar3h,其中bar和bar3分别用来绘制二维和三维竖直方图,barh和bar3h分别用来绘制二维和三维水平直方图,调用格式是:bar(x,y)其中x必须单调递增或递减,y为nm×矩阵,可视化结果为m组,每组n个垂直柱,也就…

    2022年10月11日
    1
  • javas事件_java提供的事件处理模型

    javas事件_java提供的事件处理模型鼠标事件/*onclick:点击某个对象时触发ondblclick:双击某个对象时触发onmouseover:鼠标移入某个元素时触发onmouseout:鼠标移出某个元素时触发onmouseenter:鼠标进入某个元素时触发onmouseleave:鼠标离开某个元素时触发onmousedown:鼠标按下时触发onmouseup:鼠标抬起时触发onmousemove:鼠标被移动时…

    2025年7月17日
    5
  • css中visiblity和display异同

    visiblity是设置元素的可见性,即可见/隐藏;隐藏后元素所占有位置保留;display是设置元素按什么样的方式来显示,是按块显示,显示成一条线的形式,显示为“消失”等等,当display

    2021年12月21日
    46
  • 关于Random.nextInt()方法详解「建议收藏」

    关于Random.nextInt()方法详解「建议收藏」博主在阅读>这本书时,发现其中有一个使用Random.readInt()的示例,便在idea上敲着看。发现运行结果与书上的一模一样。不禁让我好奇了起来。如下图:                 如果你也照着敲了一遍的话,我相信结果如下:                  问题来了!random.read

    2022年7月22日
    7
  • 给“小白”图示讲解OFDM的原理

    给“小白”图示讲解OFDM的原理注:本文首发在QQ空间(因为需要同行的熟人们指正)。因QQ的封闭性,这里重贴一次。本文地址:http://blog.csdn.net/madongchunqiu/article/details/18614233  说明:以下文字,灰色为吹水文,黑色为正文,蓝色为采用实际应用中的参数所作的说明。  起因是这样的。时间回到07年底,4G方兴之时,同桌隔壁的隔壁”小白”同学说看不太明白OF…

    2022年6月7日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号