python,基于花名册.excel文件,完成一个学员管理系统。学员信息的增删改查(查询所有,以及按照名称的模糊查询)、文件同步,随机点名,帮我写一个可以运行并且可以修改excel的代码
时间: 2024-11-25 13:33:09 浏览: 4
为了帮助您构建一个简单的Python学员管理系统,我们将使用pandas库处理Excel数据,并结合openpyxl库来进行读写操作。这里提供一个基础框架,您可以根据需要进行扩展:
首先安装必要的库:
```bash
pip install pandas openpyxl
```
然后创建一个名为`student_manager.py`的文件,编写以下代码:
```python
import pandas as pd
from openpyxl import load_workbook
class StudentManager:
def __init__(self, file_path):
self.file_path = file_path
self.dataframe = None
def load_excel(self):
if not self.dataframe:
self.dataframe = pd.read_excel(self.file_path)
return self.dataframe
def save_excel(self):
self.dataframe.to_excel(self.file_path, index=False)
# 学员信息操作
def add_student(self, name, other_info):
new_row = {'Name': name, 'Other Info': other_info}
self.dataframe = self.dataframe.append(new_row, ignore_index=True)
self.save_excel()
def remove_student(self, name):
self.dataframe = self.dataframe[self.dataframe['Name'] != name]
self.save_excel()
def update_student(self, old_name, new_info):
self.dataframe.loc[self.dataframe['Name'] == old_name, 'Other Info'] = new_info
self.save_excel()
def search_students(self, query=None):
if query is None:
return self.dataframe
else:
return self.dataframe[self.dataframe['Name'].str.contains(query, case=False)]
# 随机点名
def random_select(self, n=1):
if n > len(self.dataframe):
print("学员数量不足")
return
selected_names = self.dataframe.sample(n).reset_index(drop=True)['Name']
return selected_names.tolist()
# 使用示例
if __name__ == "__main__":
manager = StudentManager('students.xlsx')
# 加入新学员
manager.add_student('张三', '学生')
# 查询所有学员
all_students = manager.search_students()
print(all_students)
# 删除学员
manager.remove_student('张三')
# 更新学员信息
manager.update_student('李四', '研究生')
# 随机点名
selected_students = manager.random_select(2)
print(f"随机点名:{selected_students}")
```
这个代码实现了学员信息的基本管理功能。您可以根据实际需求调整函数和添加更多的功能。运行此脚本之前,请确保您的Excel文件中已经有标题行,例如“Name”和“Other Info”。
阅读全文