基于python脚本的批量自动更改文件名 您所在的位置:网站首页 Python写文件批量替换脚本 基于python脚本的批量自动更改文件名

基于python脚本的批量自动更改文件名

2024-06-10 23:40| 来源: 网络整理| 查看: 265

基于python脚本的批量自动更改文件名

   作为一名大学班长,经常面临收作业的问题。为了电子档作业方便清点人数,也为了整洁美观,老师常常都会规定作业的命名格式。 例如: “班级+学号+姓名_作业一”这样的格式。但是同学们交上来的作业名往往是千奇百怪。    有这样的:“通信170101+张三+作业一”    也有这样的:“1403170101+张三_作业一”    甚至还有这样的:“通信170101张三作业一” 明明正确的命名应该是:“通信170101张三_作业一”。但就是这样一个简简单单的问题,总有很多人做不好。搞得我在收作业的时候就得一个一个重命名,弄得我脑壳大。

于是我就用python写了个小程序,把那些乱七八糟的命名都自动修正好。

话不多说,直接看程序。不过得先介绍一下准备工作。

首先我在桌面有个全班名单的excel文件在这里插入图片描述 打开之后是这样的 在这里插入图片描述 然后你把要改名的文件全都放到另一个文件夹里就行

import os import pandas as pd import re #这个函数是把每个人的学号和名字从excel文件里提取出来,以便下面改名 def excel_to_list(name_list): df = pd.read_excel(name_list, usecols=[1,2],names=None) #读取项目名称列 #usecols=[1,2]表明取第二列和第三列,也就是学号和名字。 #names=None表明不要列名 df_li = df.values.tolist() #print(df_li) return df_li #return的就是学号和名字 if __name__ == '__main__': name_list = "C:\\Users\\admin\\Desktop\\通信1701名单.xlsx" #花名册地址 path = 'C:\\Users\\admin\\Desktop\\新建文件夹\\' #收作业地址 work_name = '预习作业一' #作业名字后缀 num_name_list = excel_to_list(name_list) count = 0; #数数一共有几份作业,看看齐了没 for file in os.listdir(path): #遍历作业地址中每一份作业 try: type = str(file).split('.')[1] #判断是.doc文件还是.pdf文件等,保持格式不变 type = '.' + type print("检测到此次作业类型为",type,"类型") except: type = None #文件夹就没有格式后缀了 print("检测到此次作业类型为文件夹类型") ini_taskname = str(file).split('.')[0] #把文件名中除了格式后缀的部分拿出来 for nn in num_name_list: num = str(nn[0]) #学号 na = nn[1] #名字 if re.findall(r'1402',ini_taskname): #正则表达式,如果在学号中找到了‘1402’,说明是电子专业 class_name = '电子' else: class_name = '通信' if re.findall(str(na)[0:3],ini_taskname): #只要文件名中写了本人姓名,就成功匹配到他的名字和学号。 count = count+1; if type is None: #对所有文件夹改名 os.rename(os.path.join(path,file),os.path.join(path,class_name+str(num[-6:])+str(na)+'_'+work_name)) else: #对所有非文件夹文件改名 os.rename(os.path.join(path,file),os.path.join(path,class_name+str(num[-6:])+str(na)+'_'+work_name+type)) #新的文件夹名字为“作业地址+专业名+班级学号(num[-6:0]是班级+学号的意思)+名字+下划线+文件格式” print("本次共计处理",count,"个文件") #看看作业收起了没

思来想去没有什么好办法能把每个人的作业匹配到他自己,只有用正则表达式匹配姓名了。不会有人交作业不写自己的名字吧?

那建议退学

总的来说,这是个很好用的脚本。我前两年都是很笨的手动改文件名,浪费了不少时间,希望这个小代码能帮助到各位要经常收文件的朋友。

如果觉得还不错,建议赞一下,下次给大家分享别的有用的东西



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有