python、给定学生的选课名单(学生选课名单.txt文件),每次实验课作业学生以word文档进行提交,现需设计程序根据选课名单中的学号或者姓名,对每次实验课学生是否交作业的情况进行判断,将没有交作业文档的学生的姓名学号打印并保存到本地文件中。
时间: 2024-02-27 15:52:30 浏览: 82
好的,这是一个比较复杂的需求,需要结合文件读写和文本处理等操作。以下是一个简单的Python程序,可以实现这个功能:
```python
import os
# 读取选课名单
students = {}
with open('学生选课名单.txt', 'r', encoding='utf-8') as f:
for line in f:
fields = line.strip().split()
students[fields[0]] = fields[1]
# 遍历作业目录,查找每个学生是否交了作业
missing_homework = []
for student_id, name in students.items():
homework_file = f'{student_id} {name}.docx'
if not os.path.exists(homework_file):
missing_homework.append((student_id, name))
# 输出结果到控制台
print('未交作业的学生:')
for student_id, name in missing_homework:
print(f'{student_id}\t{name}')
# 将结果保存到文件
with open('未交作业的学生.txt', 'w', encoding='utf-8') as f:
f.write('未交作业的学生:\n')
for student_id, name in missing_homework:
f.write(f'{student_id}\t{name}\n')
```
这个程序首先读取选课名单,将学号和姓名存储到一个字典中。然后遍历作业目录,对于每个学生,检查是否存在以其学号和姓名命名的作业文件,如果不存在,则将其添加到一个列表中。最后,程序将未交作业的学生信息输出到控制台,并保存到一个文件中。
阅读全文