python请用文件的基本操作知识写出10个人包括姓名,学号,出勤情况,出勤情况分别为出勤,迟到,早退,写入文件,然后将出勤的名单,写入另一个文件,代码简洁一点代码展示以及注释
时间: 2024-12-17 12:54:22 浏览: 2
在Python中,我们可以使用内置的`open()`函数打开文件并进行读写操作。这里是一个简单的示例,展示了如何将10个人的信息(姓名、学号和出勤情况)分别写入两个文件:
```python
# 导入必要的模块,虽然这个例子不需要,但在实际应用中可能需要处理异常
import os
# 定义每个人的信息
students = [
{"name": "张三", "student_id": 1, "attendance": "出勤"},
{"name": "李四", "student_id": 2, "attendance": "迟到"},
# ... 其他9位学生信息
]
# 文件路径
file_path1 = "attendance_records.txt"
file_path2 = "out_attendance_list.txt"
try:
# 打开第一个文件,追加模式写入,不存在则创建
with open(file_path1, 'a', encoding='utf-8') as file:
for student in students:
line = f"{student['name']}, {student['student_id']}, {student['attendance']}\n"
file.write(line)
print("学生信息已写入第一个文件")
# 打开第二个文件,只用于读取出勤的学生,因此选择写入模式
with open(file_path2, 'w', encoding='utf-8') as file:
for student in students:
if student["attendance"] == "出勤":
file.write(f"{student['name']} ({student['student_id']})\n")
print("出勤学生的名单已写入第二个文件")
except FileNotFoundError:
print("文件未找到,创建新文件...")
# 如果文件不存在,我们创建一个新的
with open(file_path1, 'x', encoding='utf-8') as file:
pass
with open(file_path2, 'x', encoding='utf-8') as file:
pass
finally:
# 确保无论发生什么,文件都会关闭
if os.path.exists(file_path1):
file_path1.close()
if os.path.exists(file_path2):
file_path2.close()
```
在这个示例中,我们首先将所有学生的信息写入到`attendance_records.txt`文件,然后筛选出只有出勤的学生,并将他们的名字写入到`out_attendance_list.txt`文件。注意,由于`'a'`模式会在文件末尾追加内容,所以我们不需要担心会覆盖已有数据。
阅读全文