批量重命名:删除文件名相同的部分或指定的部分

2023-11-11

本代码提供两个函数:

1,用于批量重命名文件,重命名时,删除“路径”下的文件名中含有“重复名”的部分;

重命名删除同义名(路径, 重复名)

例如:删除“Image001.png Image002.png Image003.png”中的“Image”。

2,用于批量重命名文件,重命名时,删除“路径”下的文件名中从“从第几字起”到“到第几字止”

的部分;

重命名删除部分名(路径, 从第几字起,到第几字止)

例如:删除“Image001-20230309BAK.png”中第9个字到第17个字(即:“-20230309”)。

详细代码如下:

'''批量重命名:删除文件名相同的部分或指定的部分'''
import os
import logging
logging.disable(logging.CRITICAL)
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s-%(levelname)s:%(message)s')

# 定义函数
def 列出目录文件(路径):
    import os
    文件目录 = os.listdir(路径)
    print(f'目录“{路径}”下有以下文件:\n{文件目录}')
    return 文件目录

def 重命名删除同义名(路径, 重复名):
    import os
    文件目录 = os.listdir(路径)
    原工作目录 = os.getcwd()
    os.chdir(路径)
    现工作目录 = os.getcwd()
    计数 = 0
    for 文件 in 文件目录:
        文件名 = os.path.splitext(文件)
        主文件名 = 文件名[0]
        扩展名 = 文件名[1]
        try:
            #异常测试:有可能出现找不到重复名
            查找索引号起= 主文件名.index(重复名)
            查找索引号止 = 查找索引号起 + len(重复名)
            #定位重复名在字符串中的起止索引号
            #相同字符 = 主文件名[查找索引号起:查找索引号止]
            不同字符 = 主文件名[0:查找索引号起] + 主文件名[查找索引号止:]
            #依据如上索引号,提取文件名不同的部分作为新名
        except ValueError:
            #异常处理:静默失败
            pass
        else:
            #重命名
            os.renames(文件, (不同字符 + 扩展名))
            计数+=1
    print (f'共有{计数}个文件被重命名')

def 重命名删除部分名(路径, 从第几字起,到第几字止):
    import os
    文件目录 = os.listdir(路径)
    原工作目录 = os.getcwd()
    os.chdir(路径)
    现工作目录 = os.getcwd()
    计数 = 0
    for 文件 in 文件目录:
        文件名 = os.path.splitext(文件)
        主文件名 = 文件名[0]
        扩展名 = 文件名[1]
        logging.debug(len(主文件名))
        #防止要删除的文件名字符串长度比实际文件名长
        要删除的字长=到第几字止-从第几字起+1
        if len(主文件名)>要删除的字长:
            前面保留的字 = 主文件名[0:从第几字起 - 1].strip(' ')
            后面保留的字 = 主文件名[到第几字止:].strip(' ')
            #.strip(' ')方法剔除文件名前后的空格
            保留的字 = 前面保留的字 + 后面保留的字
            #防止剩下的文件名重名
            try:
                os.renames(文件, (保留的字 + 扩展名))
            except FileExistsError:
                print('查看文件名剩余的部分是否同名?')
                # 用操作系统默认程序打开上述目录,以便查看实际情况
                os.startfile(路径)
                #程序已不可执行,强行跳出
                break
        else:
            计数 += 1
    print(f'共有{计数}个文件被重命名')

#执行
路径='G:\\Temp\\测试'
#重命名删除同义名(路径,'图片')
重命名删除部分名(路径,3,6)
列出目录文件(路径)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

批量重命名:删除文件名相同的部分或指定的部分 的相关文章

随机推荐

  • kubernetes Service(SVC)几种4层代理的不同用法,ClusterIP、Headless、NodePort、LoadBalancer

    kubernetes Service SVC 个人学习记录 kubernetes Service SVC service 概念 service 类型 SVC 访问流程组件 VIP 和 Service 代理 代理模式分类 userspace
  • 怎么用Python设置Tkinter(TK)窗口屏幕居中且获得/设置Tkinter窗口的标题

    要修改窗口位置和修改窗口大小 要用到是tk对象提供的geometry方法 该方法的用法是geometry 字符串 这个字符串格式为 窗口宽x窗口高 窗口位于屏幕x轴 窗口位于屏幕y轴 可以只设置窗口大小或者是只设置窗口的x轴和y轴 例如ge
  • 《百万在线 大型游戏服务端开发》前两章概念笔记

    第1章 从角色走路说起 游戏网络通信的流程则是服务端先开启监听 等待客户端的连接 然后交互操作 最后断开 套接字 每个Socket都包含网络连接中一端的信息 每个客户端需要一个Socket结构 服务端则需要N 1个Socket结构 其中N为
  • MySQL数据库表的合并及分区

    今天我们来聊聊处理大数据时Mysql的存储优化 当数据达到一定量时 一般的存储方式就无法解决高并发问题了 最直接的MySQL优化就是分区分表 以下是我个人对分区分表的笔记 1 合并表 把多个结果相同的的表合并为一个容器 容器的类型 Myis
  • 欢聚集团 -- 前端二面

    面试形式 牛客网 电话面试 30多分钟 我二面进行两次 第一次二面自我介绍完 输出等腰三角形代码还没写完牛客网面试页面就死掉了 第一次二面就这样结束了 第二次二面牛客网还是不行就直接电话面试了 面试内容 用JS在控制台输出由 构成的等腰三角
  • Harbor仓库自启动设置

    1 配置文件 cd etc systemd system vi harbor service Unit Description Harbor After docker service systemd networkd service sys
  • Java搭建区块链

    前言 为了更好的理解区块链的底层实现原理 决定自己动手模拟实现一条区块链 思路分析 通过之前的学习 从文本知识的角度 我们知道 创世区块 记账原理 挖矿原理 工作量证明 共识机制等等区块链的相关知识 创建一条区块链 首先默认构造创世区块 在
  • 【Vue介绍】

    Vue js是一套构建用户界面的渐进式框架 Vue 只关注视图层 采用自底向上增量开发的设计 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件 Vue js 使用了基于 HTML 的模板语法 允许声明式地将 DO
  • 通过方法引用获取方法名

    在学习Mybatis plus时 可以通过getter方法的方法引用来获取到对应的字段名 LambdaQueryWrapper
  • vue前端下载——jszip压缩和解压,结合file-saver导出图片zip,每20个图片分一个目录

    使用jszip和file saver导出图片 并打包为zip import JSZip from jszip import FileSaver from file saver 一 jszip解压缩 使用loadAsync zipFile为压
  • 侧信道攻击

    1 侧信道攻击简介 侧信道攻击中所指的侧信道信息一般为这几种 声音 温度 功耗 电磁 色彩 等等 这些信息叫做侧信道信息是因为 在加密硬件进行加密的时候 上述的信息只是加密过程中附带产生的一些物理量 这些物理量不会对加密提供任何好处 而天才
  • OSI七层模型、TCP/IP四层模型(超详细!!!!!)

    OSI七层模型 七层模型 亦称OSI Open System Interconnection 参考模型是国际标准化组织 ISO 制定的一个用于计算机或通信系统间互联的标准体系 一般称为OSI参考模型或七层模型 它是一个七层的 抽象的模型体
  • Matlab_day_3

    Matlab矩阵的表示 1 矩阵的建立 1 直接输入法 如 lt
  • AIGC 基础,从VAE到DDPM 原理、代码详解

    作者 王建周 编辑 汽车人 原文链接 https zhuanlan zhihu com p 607117094 点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 AIGC 技术交流群 一 前言 A
  • yolov5 训练一半中断,如何重连

    resume python train py xxx resume last pt
  • 用ENVI为风云三号VIRR地表温度LST日产品添加头文件(地理信息)

    上一篇文章中我们介绍了怎么用ENVI查看风云三号VIRR地表温度LST日产品的属性 下面介绍怎么用ENVI将该产品从HDF格式转换成ENVI标准格式 2019 1 7更新 有小伙伴说头文件中的datum设置成unknown才可以和他的其他矢
  • 【Google drive】【Colab】引用同级下的.py文件

    ps 1 drive后稍等片刻左侧目录会刷新 2 上传文件格式为 ipynb能够直接打开编辑 py文件只读模式
  • 1-5、Lua函数

    1 5 Lua函数 文章目录 1 5 Lua函数 5 1 多返回值 5 2 可变参数 5 3 命名参数 函数有两种用途 1 完成指定的任务 这种情况下函数作为调用语句使用 2 计算并返回值 这种情况下函数作为赋值语句的表达式使用 语法 fu
  • ffmpeg批量转换ape为mp3

    1 新建一个txt文件 并复制如下代码进入 然后保存 echo off title cd d dp0 for a in ape do ffmpeg i sa y acodec libmp3lame aq 0 na mp3 pause 2 把
  • 批量重命名:删除文件名相同的部分或指定的部分

    本代码提供两个函数 1 用于批量重命名文件 重命名时 删除 路径 下的文件名中含有 重复名 的部分 重命名删除同义名 路径 重复名 例如 删除 Image001 png Image002 png Image003 png 中的 Image