给定学生的选课名单(学生选课名单.txt文件),现需设计程序根据选课名单中的学号或者姓名,对每次实验课学生是否交作业的情况进行判断,将没有交作业文档的学生的姓名学号打印并保存到本地文件中,实验报告格式为学号和姓名.docx
时间: 2024-02-05 10:14:29 浏览: 15
好的,这个任务可以用Python来完成。首先,我们需要读取学生的选课名单,这里假设选课名单是一个以逗号分隔的文本文件,每行记录一个学生的信息,格式为“学号,姓名”。
```python
# 读取选课名单
with open('学生选课名单.txt', 'r', encoding='utf-8') as f:
students = [line.strip().split(',') for line in f.readlines()]
```
接下来,我们需要获取每个学生的作业情况,这里假设每个学生的作业以“学号_实验编号.docx”的格式命名,并且作业都保存在同一个文件夹中。
```python
import os
# 获取每个学生的作业情况
for student in students:
student_id, student_name = student
file_name = f'{student_id}_实验编号.docx'
file_path = os.path.join('作业文件夹路径', file_name) # 替换成实际的作业文件夹路径
if not os.path.exists(file_path):
print(f'{student_id} {student_name} 没有交作业')
else:
print(f'{student_id} {student_name} 已交作业')
```
最后,我们将没有交作业的学生的姓名和学号保存到一个新的文本文件中。
```python
# 保存没有交作业的学生的姓名和学号到文件中
with open('没有交作业的学生.txt', 'w', encoding='utf-8') as f:
for student in students:
student_id, student_name = student
file_name = f'{student_id}_实验编号.docx'
file_path = os.path.join('作业文件夹路径', file_name) # 替换成实际的作业文件夹路径
if not os.path.exists(file_path):
f.write(f'{student_id} {student_name}\n')
```
完整代码如下:
```python
import os
# 读取选课名单
with open('学生选课名单.txt', 'r', encoding='utf-8') as f:
students = [line.strip().split(',') for line in f.readlines()]
# 获取每个学生的作业情况
for student in students:
student_id, student_name = student
file_name = f'{student_id}_实验编号.docx'
file_path = os.path.join('作业文件夹路径', file_name) # 替换成实际的作业文件夹路径
if not os.path.exists(file_path):
print(f'{student_id} {student_name} 没有交作业')
else:
print(f'{student_id} {student_name} 已交作业')
# 保存没有交作业的学生的姓名和学号到文件中
with open('没有交作业的学生.txt', 'w', encoding='utf-8') as f:
for student in students:
student_id, student_name = student
file_name = f'{student_id}_实验编号.docx'
file_path = os.path.join('作业文件夹路径', file_name) # 替换成实际的作业文件夹路径
if not os.path.exists(file_path):
f.write(f'{student_id} {student_name}\n')
```