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

 

题目描述:

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

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

知识点: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()

 运行结果:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值