白癜风专家郑华国 http://m.39.net/pf/a_5123406.html
python文件批量操作
某班级人员情况如下:
作业上交情况:
要求自动补齐文件名称
统计班级作业上交情况
批量转为pdf
文件名称称补齐首先确定好学号列表,姓名列表。
使用pandas方法读取G:/名单,注意要将numpy转为列表类型,否则不能使用index()进行定位。
操作如下:
importpandasaspd
f=g:/名单.xlsxdf=pd.read_excel(f)num_list1=df[学号].values#获取学号那一列的数值num_list1=num_list1.tolist()#numpy转为列表num_list=[str(i)foriinnum_list1]#将学号转为字符串类型print(num_list)name_list=df[姓名].values#获取姓名那一列数值name_list=name_list.tolist()#numpy转为列表print(name_list)all_list=[str(num_list[i])+name_list[i]foriinrange(len(num_list))]print(all_list)
输出结果:
[,,,,,,,,,,,,,][小阿,小忠,小军,小红,小明,小鑫,小刘,小谭,小伯,小涵,小灿,小蔡,小达,小悦][小阿,小忠,小军,小红,小明,小鑫,小刘,小谭,小伯,小涵,小灿,小蔡,小达,小悦]
对不符合要求的文件进行重命名
os.listdir(path)获取path路径下的文件名称
os.rename(oldname,newname),对文件进行重命名。
#python自动补齐文件名称importosdeffun(list_index):
oldname=path+/+inewname=path+/+all_list[list_index]+.docxos.rename(oldname,newname)#修改文件名称print(newname+已修改)path=g:/作业f=os.listdir(path)foriinf:
ifi[:-5]inname_list:name_index=name_list.index(i[:-5])fun(name_index)elifi[:-5]innum_list:num_index=num_list.index(i[:-5])fun(num_index)elifi[:-5]inall_list:continueelse:print(i[:-5]+非法命名)运行结果:
运行后文件名称均已经补齐
统计上交结果果方法类似于上一篇文章:
完整代码:
#python自动补齐文件名称importos
path=g:作业f=os.listdir(path)foriinall_list:
i=i+.docxifiinf:print(i[:-5]+已提交)else:print(i[:-5]+\[1;32;43m未提交\[0m)运行结果:
文件件转PDF单个转pdf比较简单,但是文件数量过多可以借助工具实现。
实现原理??:重命名,将后缀改为pdf
使用函数:copy()
代码:
#一键批量转pdfimportshutilimportos
path=g:/作业#存放word的文件夹newpath=g:/作业pdf#存放pdf的文件夹f=os.listdir(path)foriinf:
oldname=path+/+inewname=newpath+/+i[:-5]+.pdfshutil.copy(oldname,newname)#复制word并且修改文件后缀print(newname+生成成功)运行结果:
但是打开pdf时却会报错!!
可以发现这个pdf文件是无法打开的,目前在python中针对word转pdf的库还是有很多的,下期会讲解一下,如何使用python实现批量转pdf。
????
PYTHONCLUB欢迎加入预览时标签不可点收录于话题#个上一篇下一篇