查询学生信息Python(CSV文件操作)
时间: 2023-08-27 18:10:45 浏览: 104
可以使用Python内置的csv模块来读写CSV文件,以下是一个简单的示例:
假设有一个名为“students.csv”的CSV文件,包含以下内容:
```
Name,Age,Gender
Tom,18,Male
Mary,19,Female
John,20,Male
```
可以使用以下代码来读取该文件,并将每个学生的信息存储在一个字典中:
```python
import csv
with open('students.csv', 'r') as file:
reader = csv.DictReader(file)
students = []
for row in reader:
students.append(row)
print(students) # 输出所有学生信息
```
输出结果:
```
[{'Name': 'Tom', 'Age': '18', 'Gender': 'Male'}, {'Name': 'Mary', 'Age': '19', 'Gender': 'Female'}, {'Name': 'John', 'Age': '20', 'Gender': 'Male'}]
```
可以根据需要对该代码进行修改,例如可以添加搜索功能,按照姓名或其他条件查询特定学生的信息。
相关问题
查询学生信息按姓名模糊查询Python(CSV文件操作)
您可以使用Python内置的csv模块来实现对CSV文件的操作,并使用字符串的in运算符来进行模糊查询。下面是一个示例代码:
```python
import csv
def search_student(name):
with open('students.csv', 'r') as f:
reader = csv.reader(f)
next(reader) # 跳过表头
result = []
for row in reader:
if name in row[0]: # 判断姓名是否包含查询关键字
result.append(row)
return result
name = input("请输入要查询的学生姓名:")
result = search_student(name)
if len(result) > 0:
print("查询结果如下:")
for row in result:
print(row)
else:
print("未找到符合条件的学生")
```
在这个示例中,我们首先打开CSV文件,然后通过csv.reader对象读取文件内容。由于第一行是表头,我们使用next函数跳过它,从第二行开始读取数据。接下来,我们遍历文件中的每一行,判断该行的第一个元素(即姓名)是否包含查询关键字。如果包含,就将该行添加到结果列表中。最后,我们输出查询结果或者未找到符合条件的学生的提示信息。
调用已有班级学生信息名单.csv 1.读取班级学生信息 2.追加学生信息 Python读写文件
当你想要在Python中操作已有的CSV文件,如名为"班级学生信息名单.csv"的文件,可以使用内置的csv模块来实现这个功能。这里是一些基本步骤:
1. **读取班级学生信息**:
```python
import csv
# 定义文件路径
file_path = "班级学生信息名单.csv"
# 使用with语句打开文件并创建一个csv.reader对象
with open(file_path, 'r') as file:
reader = csv.reader(file)
# 遍历每一行数据
for row in reader:
print(row) # 这里会打印出每行的学生信息,例如:['学号', '姓名', '年龄']
```
这将读取CSV文件的内容,并逐行显示。
2. **追加学生信息**:
如果你想添加新的学生信息到文件中,可以先确保有写入权限,然后使用csv.writer对象。假设你想添加一个新的学生('001', '张三', 18):
```python
import csv
# 新增学生信息
new_student = ['001', '张三', 18]
# 如果文件不存在,我们可以直接写入
if not os.path.exists(file_path):
with open(file_path, 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(new_student)
# 否则如果文件存在,我们需以追加模式'a'打开
else:
with open(file_path, 'a', newline='') as file:
writer = csv.writer(file)
writer.writerow(new_student)
```
注意这里的`newline=''`是为了避免空行出现在追加的数据前面。
阅读全文