文件名批量改名软件|python怎么批量重命名文件
现有一个文件夹,其中包括所有班级同学上交的作业,每人一份;所有作业命名格式统一,都是地信1701_姓名_学习心得格式。
现需要对每一位同学的作业加以改名,有很多种需求。
第一种需求,将每一位同学作业文件名中原本是姓名的部分,都修改为学号。即原本的地信1701_姓名_学习心得修改为地信1701_学号_学习心得|每一位同学有且仅有一个学号,且相互不重复,且姓名与学号的对应关系我们是已知的),如下图所示。
第二种需求,将每一位同学作业文件名中原本姓名的部分的后面,都添加上学号。即原本的地信1701_姓名_学习心得修改为地信1701_姓名_学号_学习心得,如下图所示。
第三种需求,将每一位同学满足第二种需求后的作业文件名中的下划线_部分,都修改为连接符-。即原本的地信1701_姓名_学号_学习心得修改为地信1701-姓名-学号-学习心得,如下图所示。
好了,知道了需求我们就可以开始进行代码的编写了。
2 代码实现首先,导入必要的库。
import osfrom openpyxl import load_workbook
接下来,我们首先需要让程序知道每一位同学的姓名与学号之间的对应关系。因为我们已知姓名与学号之间的关系,因此首先需要类似于下图的表格,其中为姓名与学号的一一对应关系。
接下来,我们需要将上述表格中的内容在Python中以字典的格式存储。具体代码如下,关于这一部分代码的解释大家查看这篇博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/115864227)即可,此处就不再赘述~
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=2look_up_table_row_number=32name_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 in range(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 Renamingall_word=os.listdir(original_path)for i in range(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 Renamingall_word=os.listdir(original_path)for i in range(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 Renamingall_word=os.listdir(original_path)for i in range(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,用连接符-替换掉原有的下划线_即可。
相关内容
-
视频怎么转换成mp4格式|怎么把M4V转换成MP4格式
视频怎么转换成mp4格式|怎么把M4V转换成MP4格式,格式,转换成,...
-
图片太大怎么压缩变小|图片文件太大如何压缩到
图片太大怎么压缩变小|图片文件太大如何压缩到最小,压缩,文件...
-
怎样做压缩包文件|电脑值得推荐的压缩软件
怎样做压缩包文件|电脑值得推荐的压缩软件,推荐,压缩软件,文...
-
如何把多个pdf合并成一个pdf|免费合并多个pdf文
如何把多个pdf合并成一个pdf|免费合并多个pdf文件最简单的方...
-
免费恢复文件的软件|recuva数据恢复免费版使用
免费恢复文件的软件|recuva数据恢复免费版使用方法,免费版,使...
-
手机格式化会不会对手机有影响|手机恢复出厂设
手机格式化会不会对手机有影响|手机恢复出厂设置对手机好吗,...
-
app加密软件哪个最好用|如何选择安全性高的文件
app加密软件哪个最好用|如何选择安全性高的文件加密软件,文件...
-
如何打开gho映像文件|新手安装gho镜像文件详细
如何打开gho映像文件|新手安装gho镜像文件详细步骤,映像文件,...
-
怎么压缩文件压缩到最小|pdf文件压缩到最小的方
怎么压缩文件压缩到最小|pdf文件压缩到最小的方法,文件压缩,...
-
怎样批量修改文件名字|批量修改文件名称的方法
怎样批量修改文件名字|批量修改文件名称的方法,批量修改,文件...
-
wps怎么转换成word|怎样把wps文件转换成word文
wps怎么转换成word|怎样把wps文件转换成word文档,转换成,文档...
-
微信文件在手机哪个文件夹|华为手机微信聊天记
微信文件在手机哪个文件夹|华为手机微信聊天记录文件在哪,文...
-
下载歌曲怎么转换为mp3格式|kgm歌曲转换mp3格式
下载歌曲怎么转换为mp3格式|kgm歌曲转换mp3格式的方法,格式,...
-
如何将图片转换成jpg格式|怎样快速将图片转化为
如何将图片转换成jpg格式|怎样快速将图片转化为jpg格式,格式,...
-
如何删除pdf文档中的某一页|pdf文件怎么删除其
如何删除pdf文档中的某一页|pdf文件怎么删除其中一张,删除,文...