python上机实验报告读取文件_python统计某一文件夹下的文件个数(以统计学生实验报告的情况为例)...

题目描述:

假如E盘中有上机测试目录,里面包含实验1 实验2 实验3 而实验123里面存放着学生上交的实验报告,格式为docx(doc)。

现在要求统计出这些学生上交的作业次数,结果以excel形式给出。

4a5dc9cf9a426030c3fc60a63fc7c556.png

4085504c8614d099863434b430c06543.png

知识点:python文件操作,正则表达式。

涉及的python库:os os.path re xlsxwriter

代码:

import os

import os.path

import re

import xlsxwriter

filelist=[]

result=[]

dic=dict()

def file_name(dirname):

'''递归的把文件名添加到filelist列表中'''

for item in os.listdir(dirname):

abs_item=os.path.join(dirname,item) #abs_item为绝对路径

filelist.append(item) #item为文件名

if os.path.isdir(abs_item):#若是目录,递归调用

file_name(abs_item)

dictory_name=input("请输入目录名:")

file_name(r'%s'%dictory_name)

string =''

for i in filelist: #filelist是一个存储文件名的列表

string+=i

#print(string) string="实验120177720752王雨岫.docx20177830101安新宇.docx20177...."

pattren = re.compile(r'2017[0-9]{7}') #用正则表达式匹配学号

m=pattren.findall(string)

#print(m) m=['20177720752', '20177830101',....]

n=set(m)

for i in n:

dic.update({i:m.count(i)})

print(dic) #dic={'20177830103': 3, '20177830202': 3, '20177830117': 2,...}

'''把dic写入execl'''

workbook = xlsxwriter.Workbook("E:\\data.xlsx")

worksheet = workbook.add_worksheet()

f = workbook.add_format({'bold': True, 'bg_color': 'red'})

worksheet.write(0, 0, '学号', f)

worksheet.write(0, 1, '上交次数', f)

worksheet.set_column("A:A",15)

row=1

col=0

for key in dic.keys():

worksheet.write(row, col, key)

row += 1

row=0

for value in dic.values():

worksheet.write(row+1,col+1,value)

row += 1

workbook.close()

运行结果:

6114ec1b2fa3175c017d412feb582336.png

7698b724ca810ca6edf3a5b10d722cad.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值