Python自动批量修改文件名称的方法大全

这篇具有很好参考价值的文章主要介绍了Python自动批量修改文件名称的方法大全。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

本文介绍基于Python语言,按照一定命名规则批量修改多个文件的文件名的方法。已知现有一个文件夹,其中包括班级所有同学上交的作业文件,每人一份;所有作业文件命名格式统一,都是地信1701_姓名_学习心得格式。

Python自动批量修改文件名称的方法大全

现需要对每一位同学的作业文件加以改名,有很多种需求。

第一种需求

将每一位同学作业文件名中原本是姓名的部分,都修改为学号。即原本的地信1701_姓名_学习心得修改为地信1701_学号_学习心得(每一位同学有且仅有一个学号,且相互不重复,且姓名与学号的对应关系我们是已知的),如下图所示。

Python自动批量修改文件名称的方法大全

第二种需求

将每一位同学作业文件名中原本姓名的部分的后面,都添加上学号。即原本的地信1701_姓名_学习心得修改为地信1701_姓名_学号_学习心得,如下图所示。

Python自动批量修改文件名称的方法大全

  第三种需求,将每一位同学满足第二种需求后的作业文件名中的下划线_部分,都修改为连接符-。即原本的地信1701_姓名_学号_学习心得修改为地信1701-姓名-学号-学习心得,如下图所示。

Python自动批量修改文件名称的方法大全

  好了,知道了需求我们就可以开始进行代码的编写了。

  首先,导入必要的库。

import os
from openpyxl import load_workbook

  接下来,我们首先需要让程序知道每一位同学的姓名与学号之间的对应关系。因为我们已知姓名与学号之间的关系,因此首先需要类似于下图的表格,其中为姓名与学号的一一对应关系。

Python自动批量修改文件名称的方法大全

  接下来,我们需要将上述表格中的内容在Python中以字典的格式存储。具体代码如下,关于这一部分代码的解释大家查看Python导入Excel表格数据并以字典dict格式保存即可,此处就不再赘述。

original_path='F:/学习/2020-2021-2/形势与政策(二)/论文与学习心得/01_学习心得/地信1701-学习心得/'
look_up_table_path='F:/学习/2020-2021-2/形势与政策(二)/论文与学习心得/01_学习心得/Name_Number.xlsx'
look_up_table_row_start=2
look_up_table_row_number=32

name_number_dict={}
look_up_table_excel=load_workbook(look_up_table_path)
look_up_table_all_sheet=look_up_table_excel.get_sheet_names()
look_up_table_sheet=look_up_table_excel.get_sheet_by_name(look_up_table_all_sheet[0])
for i inrange(look_up_table_row_start,look_up_table_row_start+look_up_table_row_number):
    number=look_up_table_sheet.cell(i,1).value
    name=look_up_table_sheet.cell(i,2).value
    name_number_dict[number]=name

  接下来,进行第一种需求的代码实现。

# Replacement Renaming

all_word=os.listdir(original_path)
for i inrange(len(all_word)):
    old_name=all_word[i]
    old_name_name_end=old_name.rfind('_')
    old_name_name=old_name[7:old_name_name_end]
    new_name_number=[k for k, v in name_number_dict.items() if v==old_name_name]
    new_name=old_name.replace(old_name_name,''.join(str(w) for w in new_name_number))
    os.rename(original_path+old_name,original_path+new_name)

  其中,由于大家的姓名有两个字、三个字或者更多字,因此我们使用了old_name_name_end获取原有文件名称中姓名最后一个字所在的下标;而姓名开始的位置是确定的,即从而确定了每一位同学姓名在原有文件名中的起始与终止下标位置。同时利用replace,依据同学的姓名,在字典中搜索该同学的学号,最后将同学的名字替换为其对应的学号。

  其次,是第二种需求。

# Additional Renaming

all_word=os.listdir(original_path)
for i inrange(len(all_word)):
    old_name=all_word[i]
    old_name_name_end=old_name.rfind('_')
    old_name_name=old_name[7:old_name_name_end]
    new_name_number=[k for k, v in name_number_dict.items() if v==old_name_name]
    old_name_list=list(old_name)
    insert_number=''.join(str(w) for w in new_name_number)+'_'
    old_name_list.insert(old_name_name_end+1,insert_number)
    new_name=''.join(old_name_list)
    os.rename(original_path+old_name,original_path+new_name)

在这里,同样使用old_name_name_end获取原有文件名称中姓名最后一个字所在的下标,从而确定了每一位同学姓名在原有文件名中的起始与终止下标位置。此外,利用insert,将学号这一项插入到原有的文件名称中。

最后

是第三种需求。

# Modified Renaming

all_word=os.listdir(original_path)
for i inrange(len(all_word)):
    old_name=all_word[i]
    new_name=old_name.replace('_',"-",3)
    os.rename(original_path+old_name,original_path+new_name)

  这个就简单很多了,直接利用replace,用连接符-替换掉原有的下划线_即可。

  至此,大功告成。文章来源地址https://www.toymoban.com/news/detail-434783.html

到了这里,关于Python自动批量修改文件名称的方法大全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch 8.X 如何优雅的实现字段名称批量修改?

    写入es前,数据格式如下 需求:单纯用pipeline可不可以实现,如果写入key包含json_提换为空,包含tmp提换为core,因为key字段有很多不考虑穷举,最终效果要如下: ——问题来源:死磕Elasticsearch知识星球 https://t.zsxq.com/0bzWL3w1X Elasticsearch mapping 一旦创建是不允许修改的!允许更

    2023年04月09日
    浏览(35)
  • Linux批量快速修改文件名的三种方法

    在Linux中, 批量重命名文件 是一项常见且有用的操作。以下是三种常用的批量重命名文件的方法,每种方法都附有示例。这些方法既可以适用于新手,也适用于更有经验的用户。 话不多说,直接上干货! rename 命令 rename命令是一种强大的批量重命名工具,它支持使用正则表

    2024年04月11日
    浏览(58)
  • python-使用ffmpeg批量修改文件的后缀名

    运行python脚本music.py: 1、win+r:cmd  2、python music.py

    2024年02月21日
    浏览(37)
  • “Linux免除系统交互操作方法、expect自动化交互工具” 及 “SSH批量修改主机密码脚本”

    案例:为机器磁盘进行分区并实现挂载,免交互式操作,如何实现? 注意:有些命令的交互操作提示是不算在标准输出和错误输出中的,此时该方法不适用 注意:命令的交互操作提示是不算终端窗口的,此时该方法不适用 一. expect 简介 expect 工具是一个根据脚本与其他交互

    2024年02月08日
    浏览(56)
  • Python批量修改、删除、替换xml文件内容(labelimg标注)

    使用模型训练自定义数据集之前,在用在网上搜索得到的图片制作数据集时,即使批量修改图片名称后,在使用labelimg标注得到的xml文件中,图片名称还是网络上图片原本的名称,这时需要对其进行批量修改。 然后先修改路径,将xml文件对应图片的真实路径替换。这里图片的

    2023年04月15日
    浏览(89)
  • python 批量修改文件名(PDF、word、Excel、图片、视频等)

          很多朋友遇到批量修改文件名的问题,网上各种搜,操作麻烦不说还有些需要付费。这里不多废话,直接上代码。 一、支持库 二、 定义函数 三、程序入口 四、运行,微云 下载:文件分享

    2024年01月23日
    浏览(60)
  • 【深度学习】ONNX 模型文件修改节点的名称,修改输入名称,修改输出名称

    想要修改onnx模型文件的节点名称,要么在最初的pytorch代码里去改,要么就直接在onnx模型文件里改。 而我这里直接在onnx模型文件改,我有一个onnx文件,输出节点的名字是这样的: 这不改就看着真难受,那么就用python改: 改完后: 其实修改其他节点的名称也可以这样去做,

    2024年02月15日
    浏览(44)
  • mac批量提取文件夹的名称,怎么操作?

        mac批量提取文件夹的名称,怎么操作?很多小伙伴想知道在mac电脑上可以一键快速批量的将大量文件夹的名提取出来,而不是采用一个一个名称提取的方法,这是一个有利于提高工作效率的办法,这一项技能在网上几乎找不到解决办法,不过经过小编的多方打听,还是给

    2024年02月16日
    浏览(47)
  • 用Python把csv文件批量修改编码为UTF-8格式并转为Excel格式

    有时候用excel打开一个csv文件,中文全部显示乱码。然后手动用notepad++打开,修改编码为utf-8并保存后,再用excel打开显示正常。 使用Python通过很少代码就能将上面过程自动化。 导入3个模块 chardet 模块用于得到文件的编码格式,pandas 按照这个格式读取,然后保存为xlsx格式。

    2024年02月07日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包