用python编写程序,把5名同学的学号、姓名和成绩保存为二进制文件
时间: 2024-11-27 20:17:23 浏览: 82
在Python中,你可以使用内置的`struct`模块将数据转换为二进制格式,并将其保存到文件中。假设我们有一个包含学号(int)、姓名(str)和成绩(float)的学生字典列表:
```python
import struct
# 假设学生信息如下
students = [
{'id': 1001, 'name': '张三', 'score': 90},
{'id': 1002, 'name': '李四', 'score': 85},
# 更多学生...
]
# 定义结构体格式,例如:I表示整数(4字节),16s表示最多16个字符的字符串,f表示浮点数(4字节)
format_str = 'II16sf'
# 打开二进制文件(如果不存在则创建)
with open('student_data.bin', 'wb') as file:
for student in students:
# 将数据打包成二进制
data = struct.pack(format_str, student['id'], student['name'].encode(), student['score'])
file.write(data)
相关问题
idel编写一个程序 把5位同学的学号、姓名、成绩等信息 保存到二进制文件中
在Python中,你可以使用内置的`pickle`模块来实现将学生信息保存为二进制文件的功能。假设我们有一个名为`Student`的简单类,用于存储学生的学号、姓名和成绩:
```python
class Student:
def __init__(self, student_id, name, score):
self.student_id = student_id
self.name = name
self.score = score
# 创建一个学生列表
students_data = [
Student(1, '张三', 90),
Student(2, '李四', 85),
Student(3, '王五', 95),
Student(4, '赵六', 88),
Student(5, '刘七', 92)
]
# 使用pickle模块将数据序列化并保存到二进制文件
import pickle
with open('student_info.bin', 'wb') as file:
pickle.dump(students_data, file)
del编写一个程序 把5位同学的学号、姓名、成绩等信息 保存到二进制文件中并读出数据
在Python中,你可以使用`struct`模块以及内置的`open()`函数结合`del`关键字来实现这个功能。首先,你需要将同学的信息转换成字节序列以便存储,然后使用`struct.pack()`方法打包数据,接着写入二进制文件。读取数据时,再使用`struct.unpack()`解包。
这是一个简单的例子:
```python
import struct
# 定义学生类,包含学号、姓名和成绩属性
class Student:
def __init__(self, id, name, score):
self.id = id
self.name = name
self.score = score
# 创建实例并打包数据
student1 = Student(001, '张三', 90)
packed_data = struct.pack('iii', student1.id, student1.name.encode(), student1.score)
# 写入二进制文件
with open('students.bin', 'wb') as f:
f.write(packed_data)
# 读取数据
with open('students.bin', 'rb') as f:
data = f.read()
id, name_bytes, score = struct.unpack('iii', data)
name = name_bytes.decode() # 解码字符串
# 打印读出的数据
print(f"学号: {id}, 姓名: {name}, 成绩: {score}")
阅读全文
相关推荐
















