图像批量重命名(基于Python,本地运行)

图像批量重命名(基于Python,本地运行)


🌵文章目录🌵

  • 🌳引言🌳
  • 🌳场景假设🌳
  • 🌳知识储备🌳
    • os.path.splitext方法
      • 语法
      • 示例
    • os.listdir方法
      • 语法
      • 示例
  • 🌳解决方案🌳
  • 🌳结尾🌳

🌳引言🌳

在数字时代,图像处理已经成为日常生活和工作中不可或缺的一部分。有时候,我们需要批量重命名图像格式文件,以便于管理和组织。Python作为一种功能强大的编程语言,可以轻松地实现这一需求。本文将通过实战案例,向您展示如何使用Python轻松搞定批量图像格式重命名,让您告别繁琐的手动操作,提高工作效率。


🌳场景假设🌳

有一个文件夹内全是图片,需要根据图片名称按顺序浏览。假设一共100多张图片,图像名称如下:
图片示例
即:

"""
0.jpg, 1.jpg,...,10.jpg, 11.jpg,...,100.jpg, 101.jpg, ...
"""

对于上面的图片,我们清楚地知道浏览顺序,但某些浏览器给出的排序结果却和主观认知不一致。 其排序结果如下:

"""
'0.png', '1.png', '10.png', '100.png', '101.png', '102.png', '103.png',...
"""

可以看出,这种排序方法和首字符大小相关(客观排序结果),而与文件名背后的数值含义无关(主观认知)。

基于上述分析,小编设计了一个【批量重命名图像文件名】的程序,通过统一图像文件名格式来解决【客观排序结果】和【主观认知】不一致带来的问题。


🌳知识储备🌳

Python OS 文件/目录方法

os.path.splitext方法

os.path.splitext可用于将路径名中的文件扩展名主文件名分开。这个方法返回一个包含主文件名和扩展名的元组。

语法

os.path.splitext(p)

该方法会从路径名p中移除文件的扩展名(最后一个"."后面的部分),然后返回一个包含路径的父部分和扩展名的元组。如果路径名p没有扩展名,则返回一个包含路径和空字符串的元组。

示例

# 使用示例
import osprint(os.path.splitext('example.txt'))  # 输出: ('example', '.txt')
print(os.path.splitext('example'))  # 输出: ('example', '')
print(os.path.splitext('example.tar.gz'))  # 输出: ('example.tar', '.gz')

运行结果:
在这里插入图片描述
从结果上看,如果路径名p没有扩展名,那么os.path.splitext方法会把空字符""当作扩展名返回;如果路径名p有多个扩展名,那么os.path.splitext方法会返回最后一个扩展名;

os.listdir方法

os.listdir可用于列出指定目录下的所有文件子目录

语法

os.listdir(path)

这里的path参数是一个字符串,表示要列出其内容的目录的路径。

os.listdir方法返回一个列表,其中包含指定目录下的所有文件和子目录的名称。如果指定路径不存在或发生错误,该方法将引发FileNotFoundError异常。

示例

import os# 列出当前目录下的所有文件和子目录
print(os.listdir('.'))

🌳解决方案🌳

自定义统一文件名格式函数

# 统一文件名格式
# 当指定n=3时, 
# 输入			输出
# 0.png   --->  000.png
# 9.png   --->  009.png
# 10.png  --->  010.png
# 99.png  --->  099.png
# 101.png  ---> 101.png
def unify_name(name, n):""":param name: 图像文件名+扩展名:param n: 指定的文件名长度:return: 修改后的文件名"""filename, extension = os.path.splitext(name)  # 分割文件名和扩展名while len(filename) < n:filename = "0" + filenamereturn filename + extension

完整代码

"""
程序功能:批量重命名图像文件
重命名前:0.jpg, 1.jpg,...,10.jpg, 11.jpg,...,100.jpg, 101.jpg, ...
重命名后:000.jpg, 001.jpg,...,010.jpg, 011.jpg,...,100.jpg, 101.jpg, ..."""
import os# 统一文件名格式
def unify_name(name, n):""":param name: 图像文件名+扩展名:param n: 指定的文件名长度:return: 修改后的文件名"""filename, extension = os.path.splitext(name)  # 分割文件名和扩展名while len(filename) < n:filename = "0" + filenamereturn filename + extensioncurrent_dir = "./fake_img"  # 自定义文件所在路径
img_names = os.listdir(current_dir)  # 用列表对象存放路径中所有图像文件名
for name in img_names:new_name = unify_name(name, n=3) # 修改文件名path = os.path.join(current_dir, name) # 将当前路径current_dir和文件名name拼接成完整路径os.rename(path, os.path.join(current_dir, new_name)) # 重命名文件

🌳结尾🌳

亲爱的读者,首先感谢抽出宝贵的时间来阅读我们的博客。我们真诚地欢迎您留下评论和意见💬
俗话说,当局者迷,旁观者清。的客观视角对于我们发现博文的不足、提升内容质量起着不可替代的作用。
如果博文给您带来了些许帮助,那么,希望能为我们点个免费的赞👍👍/收藏👇👇,您的支持和鼓励👏👏是我们持续创作✍️✍️的动力
我们会持续努力创作✍️✍️,并不断优化博文质量👨‍💻👨‍💻,只为给带来更佳的阅读体验。
如果有任何疑问或建议,请随时在评论区留言,我们将竭诚为你解答~
愿我们共同成长🌱🌳,共享智慧的果实🍎🍏!


万分感谢🙏🙏点赞👍👍、收藏⭐🌟、评论💬🗯️、关注❤️💚~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2777063.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV 笔记(21):图像色彩空间

1. 图像色彩空间 图像色彩空间是用于定义颜色范围的数学模型。 它规定了图像中可以使用的颜色以及它们之间的关系。它决定了图像中可以显示的颜色范围。不同的色彩空间可以包含不同的颜色范围&#xff0c;因此选择合适的色彩空间对于确保图像在不同设备上看起来一致非常重要。…

查看系统进程信息的Tasklist命令

Tasklist命令是一个用来显示运行在本地计算机上所有进程的命令行工具&#xff0c;带有多个执行参数。另外&#xff0c;Tasklist可以代替Tlist工具。通过任务管理器&#xff0c;可以查看到本机完整的进程列表&#xff0c;而且可以通过手工定制进程列表方式获得更多进程信息&…

vue3 之 商城项目—登陆

整体认识 登陆页面的主要功能就是表单校验和登陆登出业务 路由配置 模版 <script setup></script><template><div><header class"login-header"><div class"container m-top-20"><h1 class"logo"&g…

Redis -- 安装客户端redis-plus-plus

目录 访问reids客户端github链接 安装git 如何安装&#xff1f; 下载/编译、安装客户端 安装过程中可能遇到的问题 访问reids客户端github链接 GitHub - sewenew/redis-plus-plus: Redis client written in CRedis client written in C. Contribute to sewenew/redis-p…

moduleID的使用

整个平台上有很多相同的功能&#xff0c;但是需要不同的内容。例如各个模块自己的首页上有滚动新闻、有友好链接等等。为了公用这些功能&#xff0c;平台引入了moduleID的解决方案。 在前端的配置文件中&#xff0c;配置了模块号&#xff1a; 前端页面请求滚动新闻时&#xff0…

springboot173疫苗发布和接种预约系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

【MyBatis面试题】

目录 前言 1.MyBatis执行流程。 2.Mybatis是否支持延迟加载&#xff1f; 3.延迟加载的底层原理知道吗&#xff1f; 4.Mybatis的一级、二级缓存用过吗&#xff1f; 5.Mybatis的二级缓存什么时候会清理缓存中的数据&#xff1f; 总结 前言 本文主要介绍了MyBatis面试题相…

机器学习8-决策树

决策树&#xff08;Decision Tree&#xff09;是一种强大且灵活的机器学习算法&#xff0c;可用于分类和回归问题。它通过从数据中学习一系列规则来建立模型&#xff0c;这些规则对输入数据进行递归的分割&#xff0c;直到达到某个终止条件。 决策树的构建过程&#xff1a; 1.…

代码随想录|Day 14

Day 14 新年将至 一、理论学习 BFS 的使用场景总结&#xff1a;层序遍历、最短路径问题(https://leetcode.cn/problems/binary-tree-level-order-traversal/solutions/244853/bfs-de-shi-yong-chang-jing-zong-jie-ceng-xu-bian-l/) BFS 的应用一&#xff1a;层序遍历 BFS …

AI新工具(20240209) ImgGen AI-免费在线AI图像生成应用;Smoothrase - 新一代的图像擦除技术等

ImgGen AI-免费在线AI图像生成应用 使用ImgGen的AI图像生成器&#xff08;文字转图像&#xff09;免费创建令人惊叹的图像&#xff0c;无水印&#xff0c;无需注册。包括功能、优势、定价、定位等。 Anything in Any Scene - 在现有的动态视频中无缝地插入任何物体&#xff0c…

每日五道java面试题之java基础篇(四)

第一题. 访问修饰符 public、private、protected、以及不写&#xff08;默认&#xff09;时的区别&#xff1f; Java 中&#xff0c;可以使⽤访问控制符来保护对类、变量、⽅法和构造⽅法的访问。Java ⽀持 4 种不同的访问权限。 default (即默认&#xff0c;什么也不写&…

React18原理: 渲染与更新时的重点关注事项

概述 react 在渲染过程中要做很多事情&#xff0c;所以不可能直接通过初始元素直接渲染还需要一个东西&#xff0c;就是虚拟节点&#xff0c;暂不涉及React Fiber的概念&#xff0c;将vDom树和Fiber 树统称为虚拟节点有了初始元素后&#xff0c;React 就会根据初始元素和其他可…

Redis篇之双写一致性

一、什么的双写一致性 1.定义 双写一致性&#xff1a;当修改了数据库的数据也要同时更新缓存的数据&#xff0c;缓存和数据库的数据要保持一致。 2.正常情况 读操作&#xff1a;缓存命中&#xff0c;直接返回&#xff1b;缓存没命中查询数据库&#xff0c;写入缓存&#xff…

在Ubuntu上部署Stable Video Diffusion动画制作

Stable Diffusion团队推出的开源模型Stable Video Diffusion&#xff0c;支持生成约3秒的视频&#xff0c;分辨率为5761024。通过测试视频展示了其令人瞩目的性能&#xff0c;SVD模型是一个生成图像到视频的扩散模型&#xff0c;通过对静止图像的条件化生成短视频。其特点主要包…

Linux下的文件权限与访问控制:守护你的数据宝藏

引言 在Linux这片广袤的领域中&#xff0c;文件权限与访问控制犹如守护宝藏的魔法阵&#xff0c;它们确保你的系统安全、数据不被窥探。对于初学者而言&#xff0c;了解并掌握这些魔法阵的奥秘&#xff0c;是成为一名合格Linux巫师的必经之路。那么&#xff0c;就让我们一起揭…

单片机项目调试中的技巧和常见问题解决

单片机是嵌入式系统中的重要组成部分&#xff0c;在各种电子设备中发挥着重要的作用。在单片机项目开发过程中&#xff0c;调试是至关重要的一环&#xff0c;同时也会遇到一些常见问题。本文将介绍一些单片机项目调试的技巧以及常见问题的解决方法&#xff0c;希望能够对单片机…

Transformer的PyTorch实现之若干问题探讨(二)

在《Transformer的PyTorch实现之若干问题探讨&#xff08;一&#xff09;》中探讨了Transformer的训练整体流程&#xff0c;本文进一步探讨Transformer训练过程中teacher forcing的实现原理。 1.Transformer中decoder的流程 在论文《Attention is all you need》中&#xff0…

【前端高频面试题--TypeScript篇】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;前端高频面试题 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 高频前端面试题--Vue3.0篇 什么是TypeScript&#xff1f;TypeScript数据类型TypeScript中命名空…

Python爬虫实战:抓取猫眼电影排行榜top100#4

爬虫专栏系列&#xff1a;http://t.csdnimg.cn/Oiun0 抓取猫眼电影排行 本节中&#xff0c;我们利用 requests 库和正则表达式来抓取猫眼电影 TOP100 的相关内容。requests 比 urllib 使用更加方便&#xff0c;而且目前我们还没有系统学习 HTML 解析库&#xff0c;所以这里就…

深度学习自然语言处理(NLP)模型BERT:从理论到Pytorch实战

文章目录 深度学习自然语言处理&#xff08;NLP&#xff09;模型BERT&#xff1a;从理论到Pytorch实战一、引言传统NLP技术概览规则和模式匹配基于统计的方法词嵌入和分布式表示循环神经网络&#xff08;RNN&#xff09;与长短时记忆网络&#xff08;LSTM&#xff09;Transform…