【Python】文件批量重命名
需求:
经常有很多相似的文件需要重命名,如果一个一个来太麻烦了,正好会Python,所以用Python写了个脚本,把符合要求的文件的文件名修改为新的。
代码:
# coding:utf-8
# @Time : 2021/5/18 15:32
# @Author : minuy
# @File : rename.py
import os
import re
def get_suffix(file):
"""
获取文件后缀
:param file: 文件名
:return: 文件后缀
"""
return re.sub(r'.+\.', '', file)
def get_new_name(old_file_name):
"""
根据旧的文件名,生成新的文件名
:param old_file_name: 旧的文件名
:return: 如果返回False,不执行更改,否则返回新的文件名
"""
suffix = get_suffix(old_file_name)
new_file_name = old_file_name
if suffix == 'java':
new_file_name = old_file_name.replace(suffix, 'txt')
return new_file_name
def change_file_name(file_dir, is_show=True):
"""
遍历并重命名文件
:param is_show: 是否显示调试信息
:param file_dir: 根目录
:return: 成功个数 失败个数
"""
rename_count = 0
failed_count = 0
for root, dirs, files in os.walk(file_dir):
if is_show:
print(root) # 当前目录路径
print(dirs) # 当前路径下所有子目录
print(files) # 当前路径下所有非目录子文件
for file_name in files:
new_name = get_new_name(file_name)
if new_name:
old_name = os.path.join(root, file_name)
new_name = os.path.join(root, new_name)
if old_name != new_name:
if is_show:
print('文件名改变 -> ', old_name, new_name)
os.rename(old_name, new_name)
rename_count += 1
else:
failed_count += 1
return rename_count, failed_count
if __name__ == '__main__':
ret = change_file_name(r"D:\Minuy\Desktop\试卷\java")
print('修改文件名 -> 成功个数:', ret[0], '失败个数:', ret[1])
说明:
很简单,change_file_name函数就是遍历整个目录,把文件名传入get_new_name函数,get_new_name函数负责生成新的文件名并返回,再由change_file_name函数去修改。使用时只需要根据自己的需求重写get_new_name函数即可。
【Python】文件批量重命名的更多相关文章
- C#实现文件批量重命名源码下载
本文要实现的功能是 文件批量重命名,当选择一个文件夹时,通过操作可以把文件夹下面所有文件进行重命名.建立了HoverTreeBatch项目. 然后 定义文件夹信息: DirectoryInfo _Th ...
- Java实现文件批量重命名
Windows操作系统可以实现重命名文件操作,却不能实现批量重命名.本实例实现了批量重命名功能,可以将一个文件夹内同一类型的文件按照一定的规则批量重命名.用户可以给出重命名模板,程序可以根据模板对相应 ...
- java IO 文件批量重命名
java IO 文件批量重命名 package com.vfsd.renamefile; import java.io.File; import java.io.FileInputStream; im ...
- php文件夹下文件批量重命名
php文件夹下文件批量重命名 <?php header("Content-type:text/html;charset=utf-8"); $dir = __DIR__.'./ ...
- 使用 vim 快速对当前文件夹下的文件批量重命名
前言 我们在使用 Linux 的时候,有很多种方法可以对文件进行重命名,例如 命令行 下的 mv 命令,或者是使用像 dolphin 这样的图形文件管理器.但是有时候需要对一个文件夹下的所有文件批量重 ...
- 利用Python对文件批量重命名
由于要用到对无序的文件进行重命名,以下写了一个脚本,进行批量进行重命名. 基本格式是 i.后缀名 ( i 循环条件下的数 ) 1 #coding:utf8 2 import os; 3 4 def ...
- 使用java对文件批量重命名
有时候从网络上下载的电视剧或者动漫,名字上都会被该网站加上前缀或者后缀,如图: 那么处女座的同学就不同意了,不行,我就是想让它按照我的习惯方式命名!但是呢,一个个修改是不是特别麻烦,如果是上百个呢?如 ...
- Java 实现文件批量重命名亲测可用(精简版)
package com.cmge.utils; import java.io.*; import java.util.*; import java.util.Map.Entry; import com ...
- 【Linux】文件批量重命名
例如:我们现在有如下文件列表 我们现在想要把.log..LOG与.rar为扩展名的文件全部重新命名,具体脚本如下: #!/bin/sh ##------------------------------ ...
- Mac OS Yosemite 文件批量重命名
首先,我们选中一个文件夹 右键,或者回车,给一个文件夹改名 同时选中三个文件夹 右键,选中批量更改 弹出批量更改,进行更改 改好后点回车,就能看到效果了 继续操作,完成所有文件 ...
随机推荐
- Vue数据更新不渲染页面的问题
一. 问题现象 在通过数组下标的方式修改集合元素,元素的值确实是更新了,但是页面不能重新渲染. 二. 原因分析 Vue官方文档传送门 三. 解决方案 // 针对数组使用 this.$set(arr,i ...
- [rustGUI][iced]基于rust的GUI库iced(0.13)的部件学习(03):图像的导入、显示、调整(暨image部件的使用介绍)
前言 本文是关于iced库的部件介绍,iced库是基于rust的GUI库,作者自述是受Elm启发. iced目前的版本是0.13.1,相较于此前的0.12版本,有较大改动. 本合集是基于新版本的关于分 ...
- Index - 此处的诗
虚构往事 正篇 嗯--本来发过两篇,但深愧于仓促的处理和并未完善的细节设定,隐藏了. 大概会是一个中篇的科幻故事,世界设定已经完善了(Shaya 可以作证!),但近期可能没有精力动笔. 番外 ...
- 数据同步工具-DataX
1.DataX 基本介绍 DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具,致力于实现包括:关系型数据库(MySQL.Oracle等).HDFS.Hive.HBase.ODPS.FTP等各种异 ...
- 京东从 OpenStack 改用 Kubernetes 的始末
构建集群的历史 物理机器的时代(2004年-2014年) 在2014年之前,我们公司的应用程序都部署在物理机器上.在物理机器时代,为了给即将上线的应用程序分配物理机器,我们平均需要等上一周的时间.由于 ...
- Linux:GPU
什么是GPU? CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景.CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处 ...
- SpringBoot启动源码分析
- HPC中常见的调度器介绍
本文分享自天翼云开发者社区<HPC中常见的调度器介绍> 作者:土豆炒肉丝 在高性能计算(HPC)环境中,调度器是负责管理和分配计算资源(如计算节点.处理器核心.内存等)给待执行任务的重要组 ...
- DBeaver出现“Public Key Retrieval is not allowed”错误的解决办法
1.问题描述 我们在使用DBeaver连接MySql的时候,可能会出现"Public Key Retrieval is not allowed"的错误提示,如下图所示: 2.解决办 ...
- POI包操作Excel代码
1.创建工作簿 (WORKBOOK) HSSFWorkbook wb = new HSSFWorkbook(); FileOutputStream fileOut = new File ...