(小脚本) (python) 批量修改文件后缀名
文章目录
- 前言
- 完整代码
- 效果展示
- 原目录结构
- 运行展示
- 修改效果
- 代码讲解
- 主要函数
- os.walk(path)
- 判断文件
- 修改
- END
前言
有时候我们需要批量修改一些文件的后缀名
作为程序员我们自然得自己写点脚本了
本文通过python来实现批量修改文件名,同时还能修改其子文件夹中的文件
完整代码
import osclass ChangeSuffix():def __init__(self, absolutePath, beforeSuffix, afterSuffix) -> None:self.absolutePath = absolutePathself.beforeSuffix = beforeSuffixself.afterSuffix = afterSuffixdef work(self, flag=False):# 需要修改的后缀长度LEN = len(self.beforeSuffix)for curDir, subDir, allFile in os.walk(self.absolutePath):print("当前主目录:", curDir)print("当前主目录下的所有目录", subDir)print("当前主目录下的所有文件", allFile)for curFile in allFile:curFileSuffix = curFile[-LEN:]# 判断后缀是否相同,且后缀的前一个是否是.点号if curFileSuffix == self.beforeSuffix and curFile[-(LEN+1)] == '.':oldName = os.path.join(curDir, curFile) # 化为绝对路径newName = oldName[:-LEN] + self.afterSuffixos.rename(oldName, newName)# flag 是否递归子文件夹if not flag:breakreturn Trueif __name__ == "__main__":absolutePath = input("请输入目标文件夹的绝对路径:")beforeSuffix = input("请输入需要修改的后缀:")afterSuffix = input("请输入修改之后的后缀:")needRecursion = input("是否需要操作该目录下的子文件夹(0/1): ")print("************ START ***********")change = ChangeSuffix(absolutePath, beforeSuffix, afterSuffix)if change.work(needRecursion != "0"):print("************ END ***********")
效果展示
原目录结构
C:\Users\windows\Desktop\素材>tree /f
文件夹 PATH 列表
卷序列号为 B87D-2753
C:.
│ 1.jpeg
│ main.exe
│
└─子文件夹│ 2.jpeg│ 3.jpeg│├─孙子文件夹1│ 4.jpeg│└─孙子文件夹25.jpeg
运行展示
这里用命令行来展示
分别输入四条信息
- 目标文件夹的绝对路径
- 需要修改的后缀
- 修改之后的后缀
- 是否需要操作该目录下的子文件夹(0/1)
E:\VS Code\python>python ./test.py
请输入目标文件夹的绝对路径:C:\Users\windows\Desktop\素材
请输入需要修改的后缀:jpeg
请输入修改之后的后缀:png
是否需要操作该目录下的子文件夹(0/1): 1
************ START ***********
当前主目录: C:\Users\windows\Desktop\素材
当前主目录下的所有目录 ['子文件夹']
当前主目录下的所有文件 ['1.jpeg', 'main.exe']
当前主目录: C:\Users\windows\Desktop\素材\子文件夹
当前主目录下的所有目录 ['孙子文件夹1', '孙子文件夹2']
当前主目录下的所有文件 ['2.jpeg', '3.jpeg']
当前主目录: C:\Users\windows\Desktop\素材\子文件夹\孙子文件夹1
当前主目录下的所有目录 []
当前主目录下的所有文件 ['4.jpeg']
当前主目录: C:\Users\windows\Desktop\素材\子文件夹\孙子文件夹2
当前主目录下的所有目录 []
当前主目录下的所有文件 ['5.jpeg']
************ END ***********
修改效果
C:\Users\windows\Desktop\素材>tree /f
文件夹 PATH 列表
卷序列号为 B87D-2753
C:.
│ 1.png
│ main.exe
│
└─子文件夹│ 2.png│ 3.png│├─孙子文件夹1│ 4.png│└─孙子文件夹25.png
代码讲解
主要函数
def work(self, flag=False):# 需要修改的后缀长度LEN = len(self.beforeSuffix)for curDir, subDir, allFile in os.walk(self.absolutePath):print("当前主目录:", curDir)print("当前主目录下的所有目录", subDir)print("当前主目录下的所有文件", allFile)for curFile in allFile:curFileSuffix = curFile[-LEN:]# 判断后缀是否相同,且后缀的前一个是否是.点号if curFileSuffix == self.beforeSuffix and curFile[-(LEN+1)] == '.':oldName = os.path.join(curDir, curFile) # 化为绝对路径newName = oldName[:-LEN] + self.afterSuffixos.rename(oldName, newName)# flag 是否递归子文件夹if not flag:breakreturn True
os.walk(path)
这个函数会返回三个内容
- curDir 当前主目录 str
- subDir 当前主目录下的所有目录 list
- allFile 当前主目录下的所有文件 list
并且在第二次循环开始是默认递归上次的子目录,因此就能达到遍历该目录下的所有文件的作用
如果不想要递归子文件夹的内容,则可以设置一个flag来结束循环
for curDir, subDir, allFile in os.walk(self.absolutePath):pass
判断文件
判断文件的方式比较简单
直接截取该文件名的末尾,判断是否和需要修改的后缀名相等,且前一个字符是点好'.'
修改
# 两个都要绝对路径
os.rename(oldName, newName)
END
(小脚本) (python) 批量修改文件后缀名相关推荐
- 如何批量修改文件后缀名?
如何批量修改文件后缀名?文件的后缀名告诉了我们这个文件是什么文件,例如后缀名为docx的文件是word,后缀名为xlsx的文件是excel表格.在文件的使用过程中,我们也经常需要对文件的后缀名进行修改 ...
- 批量修改文件后缀名(脚本)
一键批量修改文件后缀名(脚本) 输入法是英语模式输入!!! 输入法是英语模式输入!!! 输入法是英语模式输入!!! 1.在你需要更改的 ...
- linux sed给空文件首行插入_linux下批量修改文件后缀名以及合并多行
写在前面 感谢乔兄送测的公司,让我终于所有营业 part1讲下怎么解决小问题 part2分享谈判过程 part3mark张兄的奶茶 PART1 linux下批量修改文件后缀名以及合并多行 近期师兄在做 ...
- 计算机如何更改后缀文件名,如何批量修改文件后缀名(任何文件的扩展名)?
无需软件批量修改文件后缀名?怎么通过命令行批量修改文件后缀名?有时候由于文件后缀名格式不同,有的时候我们需要对文件扩展名进行修改,或者文件扩展名丢失,需要添加.如果数量少的文件那还简单直接修改就好了. ...
- 如何批量修改文件后缀名?(批量修改文件的扩展名)
无需软件批量修改文件后缀名?怎么通过命令行批量修改文件后缀名?有时候由于文件后缀名格式不同,有的时候我们需要对文件扩展名进行修改,或者文件扩展名丢失,需要添加.如果数量少的文件那还简单直接修改就好了. ...
- 怎么批量修改html文件后缀,如何批量修改文件后缀名 超详细介绍
如何批量修改文件后缀名 超详细介绍.比如我们保持图片的时候,不是我们要的jpg格式的,需要一个一个去修改她的后缀名.现在小编就教大家快速的,批量的,安全的修好多数的文件后缀名.希望能帮大家平时的工作. ...
- bat修改win8计算机名,Win7/win8系统下利用批处理文件批量修改文件后缀名的方法...
大家都知道,文件后缀名也叫文件扩展名,是用来表示某种文件格式所采用的机制,不过有时候有需要想要修改文件的后缀名类型,一般都是通过右键修改重命名来完成的,但是如果需要修改多个文件后缀名的话一个个修改太麻 ...
- Linux下shel脚本之批量修改文件扩展名
Linux下shel脚本之批量修改文件扩展名 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 1.在/data/tmp/下的所有文件扩展名改为.py ...
- java例程练习(批量修改文件后缀名)
/*** 文件后缀名修改器* 说明:UI部分* @author Yours风之恋* * 创建时间:2012-8-8**/ public class UserInterface {public stat ...
最新文章
- python 的文件目录拷贝转移,自动递归目录建立目录
- html显示三维模型restful,返回带有Flask Restful的呈现模板,在浏览器中显示HTML
- 1、C++招聘笔试--C++中的C
- hadoop2.6.0安装详细步骤
- cpythonjavagolang_cpython:列表对象(PyListObject)的扩容机制
- 前端学习(2738):重读vue电商网站48之通过 chainWebpack 自定义打包入口
- 树莓派使用STEP7:安装wiringPi硬件外设驱动C库
- 【java】java 定时任务线程池 ScheduledThreadPoolExecutor 源码阅读
- 卡巴斯基称新型黑客雇佣组织正在攻击欧洲律所
- 简单的redis使用watch完成秒杀抢购功能
- 获取SD卡上 未安装 APK文件信息
- Hyperledger Fabric教程(4)-- byfn.sh分析-docker-compose-cli.yaml
- YAML_06 playbook从上往下顺序执行,若报错,不提示,继续往下执行
- 这几天阅读的shadowgun的几个shader
- 双碑零基础法语学习 学习法语要知道哪些法语常识?
- 根域名服务器作用,域名系统的主要功能是什么?域名系统中的本地域名服务器、根域名服务器、顶级域名 - 问答库...
- Maya_to_Unity工作流程
- 滑块逃脱_逃脱测试的丛林:从夹具到断言的捷径
- 服务网关-Zuul(二)
- android 生成kml,Android模拟GPS数据生成kml和nmea文件