2.0版本
https://blog.csdn.net/xiaobai_July/article/details/108930991
1.思路
1.1首先需要一个班级的成员名单,包括学号和姓名。通过遍历进行统计提交情况(我现在没有名单,使用字典的方式进行后续比较)
1.2编写遍历文件夹下文件的方法,并且拿到文件的名称,提取姓名和学号(供后边统计使用)。
1.3实现已经提交人员名单.
初始化一个提交人员的list,通过上边遍历的文件学号(即文件夹下存在的都是已经提交的),添加到这个list中。
1.4实现未提交作业的人员名单.
通过遍历原始字典下,进行提交名单的list嵌套。使用if进行判断,如果字典中存在提交名单的内容,把它剔除掉。最后把字典转成list输出。
1.5实现生成未提交人员的excel文件(固定代码,按照模板使用即可)
2.实现
2.1运行截图
2.2代码
import os
import xlwt
def findAllFile(base):
for root, ds, fs in os.walk(base):
for f in fs:
yield f
def main():
base = r'C:\Users\19594\Desktop\软件3班作业'
count=0
num_name={
'01': '三班1号',
'02': '三班2号',
'03': '三班3号',
'04': '三班4号',
'05': '三班5号',
'06': '三班6号',
'07': '三班7号',
'08': '三班8号',
'09': '三班9号',
'10': '三班10号',
'11': '三班11号',
'12': '三班12号',
'13': '三班13号',
'14': '三班14号',
'15': '三班15号',
'16': '三班16号',
'17': '三班17号',
'18': '三班18号',
'19': '三班19号',
'20': '三班20号',
'21': '三班21号',
'22': '三班22号',
'23': '三班23号',
'24': '三班24号',
'25': '三班25号',
'26': '三班26号',
'27': '三班27号',
'28': '三班28号',
'29': '三班29号',
'30': '三班30号',
'31': '三班31号',
'32': '三班32号',
'33': '三班33号',
'34': '三班34号',
'35': '三班35号',
'36': '三班36号',
'37': '三班37号'
}
submit_list=[]
submit_list2=[]
for i in findAllFile(base):
for a in num_name:
if i.split("202010203")[1][0:2]==a:
submit_list.append(a+''+num_name[a])
submit_list2.append(a)
count += 1
for key in list(num_name.keys()):
for i in submit_list2:
if key==i:
del num_name[key]
continue
print('共提交',count,'份作业')
print('提交名单',submit_list)
print('未交', len(num_name),'人,名单',list(num_name.values()))
print('是否生成excel文件?1是2否')
flag = input()
if flag=='1':
print('生成完毕,请在桌面查看')
# 创建工作簿
f = xlwt.Workbook()
# 创建一个sheet
sheet1 = f.add_sheet('未交作业名单', cell_overwrite_ok=True)
col1 = sheet1.col(0)
col1.width = 256 * 38
# 第一个是行,第二格式列 都是从0开始
for i in range(0, len(list(num_name.keys()))):
sheet1.write(i, 0, list(num_name.values())[i])
# 保存文件
f.save(r"C:\Users\19594\Desktop\名单.xls")
else:
print('取消生成')
if __name__ == '__main__':
main()