PYTHON 自动化办公:更改图片后缀

1、前言

在之前的文章中,介绍了图片的压缩技术,这里讲解如何利用python批量将图片改为指定后缀的格式。当然,也可以为深度学习批量更改文件后缀,例如在分割中,可能需要img和mask的图片名称完全一致等等

PYTHON 自动化办公:压缩图片(PIL)_image save quality图像压缩-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_44886601/article/details/136413689

文中使用的库函数是python的PIL库函数(pillow),安装如下

pip install pillow

Tips :

 image_format = ['.jpg','.jpeg','.png','.gif','.bmp','.tiff','.ai','.cdr','.eps']     # 常见的图片后缀名

代码中会有一个常见图片后缀的列表,为了后面的使用,如果使用的图片后缀不在里面,可以自行添加

2、更改单张图片的后缀

代码如下:

因为有的图片名称很长,甚至中途还会将后缀出现,例如 sda1233pngddwsa.png

但无论怎样风骚的文件名,不可能出现带 . + 后缀 的字符串,因为会直接报错。所以这里image_format 列表文件名都加了 . 方便遍历

from PIL import Image


def main(img_path,img_fm):
    image_format = ['.jpg','.jpeg','.png','.gif','.bmp','.tiff','.ai','.cdr','.eps']     # 常见的图片后缀名

    for i in image_format:
        if i in img_path:
            ret_path = img_path.split(i)[0]     # 文件名
            ret_path = ret_path + '.' + img_fm  # 返回的图片名

    img = Image.open(img_path).convert('RGB')
    img.save(ret_path)


if __name__ == '__main__':
    root = 'test.png'  # 传入图片的路径
    img_format = 'jpeg'     # 待更改的后缀格式 jpg png jpeg ...

    main(img_path=root,img_fm=img_format)

效果如下:

3、多张图片更改成指定后缀(单个文件夹)

测试的目录如下:

目的是将demo目录的所有图片更改为 jpg 格式,并且保存在新的目录

代码:

from PIL import Image
import os


def main(img_path,img_fm):
    image_format = ['.jpg','.jpeg','.png','.gif','.bmp','.tiff','.ai','.cdr','.eps']     # 常见的图片后缀名

    # 返回的新目录
    ret_folder_path = img_path + '_ret'
    if not os.path.exists(ret_folder_path):
        os.makedirs(ret_folder_path)

    image_list = [i for i in os.listdir(img_path)]  # 所有的图片文件

    for im in image_list:
        for i in image_format:
            if i in im:
                ret_path = im.split(i)[0]     # 文件名
                ret_path = ret_path + '.' + img_fm  # 返回的图片名

        img = Image.open(os.path.join(img_path,im)).convert('RGB')
        img.save(os.path.join(ret_folder_path,ret_path))


if __name__ == '__main__':
    root = 'demo'  # 传入图片文件夹目录
    img_format = 'jpg'     # 待更改的后缀格式 jpg png jpeg ...

    main(img_path=root,img_fm=img_format)

效果如下:

4、多个文件夹的图片后缀更改

测试目录:

代码:

from PIL import Image
import os


def main(img_path,img_fm):
    image_format = ['.jpg','.jpeg','.png','.gif','.bmp','.tiff','.ai','.cdr','.eps']     # 常见的图片后缀名

    # 返回的新目录
    ret_folder_path = img_path + '_ret'
    if not os.path.exists(ret_folder_path):
        os.makedirs(ret_folder_path)

    sub_folder = [i for i in os.listdir(img_path)]

    for sf in sub_folder:
        os.makedirs(os.path.join(ret_folder_path,sf))

        for i in os.listdir(os.path.join(img_path,sf)):     # 图片名
            for j in image_format:
                if j in i:
                    ret_path = i.split(j)[0]     # 文件名
                    ret_path = ret_path + '.' + img_fm  # 返回的图片名

            img = Image.open(os.path.join(img_path,sf,i)).convert('RGB')
            img.save(os.path.join(ret_folder_path,sf,ret_path))


if __name__ == '__main__':
    root = 'demo'  # 传入图片文件夹目录
    img_format = 'jpg'     # 待更改的后缀格式 jpg png jpeg ...

    main(img_path=root,img_fm=img_format)

效果演示:

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
# chapter1 Python 学习必知 ## 1.1 Python2.x 与 Python3.x 选择   对于想要学习 Python 的同学来说首先要面对的就是版本选择的问题, 到底是学习 Python2.x 还是学习 Python3.x? 之所以会有这样的疑问主要归结于 Python 语言发展的历史遗留问题导致。<br>   Python 语言早在 1989 由 Guido van Rossum 开发, 第一个公开发行版发行于 1991 年。 因为早期的 Python 版本在基础方面设计存在着一些不足之处。在 2008 年的时候 Guido van Rossum 又重新开发 Python 3.0,Python3 在设计的时候很好地解决了这些遗留问题, 并且在性能上也有了一定的提升, 然而 Python3 带来的最大的问题 就是不完全向后兼容, 当时向后兼容的版本是 Python2.6。 因为经过多年的发展, Python 已经是一门非常成熟 的语言了, 大量的项目在使用 Python 语言运行, 围绕着 Python 语言有着极其丰富的类库。 无法一下子就让所 有项目和类库都转到 Python3.0 上面。 所以, 两个版本就进入了长期并行开发和维护的状态。<br>   正是由于官方对 Python2.x 纵容的态度, 致使到目前为止, Python2 的使用者依然过半。 从近两年来看, 官方的态度有所改变, Python2.x 的开发进入消极状态, 版本更新速度明显要比 Python3.x 慢得多, 而且不再加 入新的特性, 以维护为主。 所以, 这将非常有利于 Python3 的发展, 那么对于新手来说, 我建议读者直接学习 Python3.x, 因为 Python3.x 代表了 Python 发展的未来; 而且目前主流的库基本都已经支持了 Python3.x, 不支 持的库也在积极的向 Python3.x 迁移。 那么, 在本书中除非特别声明, 否则默认情况所有代码将在 Python3.x 下运行。<br> ## 1.2 Python 的安装 ### 1.2.1 Window 下安装 Python   Python 下载地址: https://www.python.org/downloads/<br>   目前最新版本为 Python3.5。 读者可根据自己的平台选择相应的版本进行下载。 对于 Windows 用户来说, 如果 32 位系统是则选择 x86 版本; 如果是 64 位系统, 则选择 x86-64 版本。 选择“executable installer” 的连 接进行下载, 下载完成后会得到一个以.msi 为后缀名的文件, 双击进行安装, 如图 1.1 所示。<br> ![image](https://github.com/15529343201/guest/blob/chapter1/image/1.1.PNG)<br>   安装过程与一般的 Windows 程序类似。 安装完成, 将在开始菜单中将看到安装好的 Python 目录, 如图 1.2 所示。<br> ![image](https://github.com/15529343201/guest/blob/chapter1/image/1.2.PNG)<br> 在 Windows 系统中, 安装好的 Python 提供了四个选项。<br>   IDLE(Python 3.5 64-bit) : 该选项为 Python 自带的 IDE, 推荐新手使用。<br>   Python 3.5 (64-bit): 该选项会直接在 window 名称提示符下进入 Python Shell 模式。<br>   Python 3.5 Manuals(64-bit) : -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
Python自动化运维是利用Python编程语言来实现自动化运维的技术和实践。随着云计算和大数据的发展,运维工作变得越来越复杂和繁琐,手动操作已经无法满足需求,因此自动化运维成为了必然趋势。 Python作为一种简洁、易于学习和灵活的编程语言,被广泛应用于自动化运维领域。它结合了丰富的标准库和第三方库,可以方便地实现系统监控、日志分析、配置管理、批量操作等常见运维任务。 在技术方面,Python提供了各种库和工具,如Paramiko、Fabric、Ansible等,用于实现SSH连接、远程执行命令、批量部署等操作。此外,Python还可以通过调用其他系统的API接口,实现与云平台、容器技术等的集成。同时,Python还支持多线程和多进程,可以提高程序的并发处理能力。 在实践方面,Python自动化运维可以应用于各种场景。例如,可以用Python编写脚本来监控服务器的性能指标,定时生成报表;可以使用Python自动化配置管理,实现快速、一致性的配置变更;还可以通过Python批量部署应用程序,简化操作流程,提高效率;此外,还可以利用Python实现日志分析和故障排查等任务。 总结来说,Python自动化运维是一种利用Python编程语言实现系统运维自动化的技术和实践。它能够提高运维工作的效率和可靠性,减少人工操作的复杂性和错误率,并且具备广泛的应用场景和丰富的技术支持。随着自动化运维的普及和Python的持续发展,Python自动化运维将在未来发挥更加重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听风吹等浪起

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值