(7文件操作)已知二进制文件stu3.dat有若干个学生信息,每个学生信息包含学号、姓名、年龄、成绩信息,其中学号11个字符长度、姓名最多10字符长度的字符串,都以GBK格式保存,年龄以4字节有符号整型数保存,成绩以双精度浮点数保存,无字节对齐,数值数据字节顺序按本地机器,数据类型字节数按默认。请编程读取前n个学生信息并显示,同时不显示空字符

样例输入

3

 

样例输出

20180861101,张亚佳,19,96.5
20180861102,韩云飞,20,94.5
20180861103,祖丞,21,92.5

解题代码

#coding=gbk
""""""
import struct
n=int(input())
f=open("stu.dat","rb")
for i in range(n):
    stu_bytes=f.read(struct.calcsize('=11s10sid'))
    stu_tuple=struct.unpack('=11s10sid',stu_bytes)
    xh=str(stu_tuple[0],'GBK')
    xm=str(stu_tuple[1],'GBK').replace('\x00','')
    age,cj=stu_tuple[2],stu_tuple[3]
    print(xh,xm,age,cj,sep=",")
f.close()

""""""

 

posted @ 2022-10-29 10:48  淡淡的晓山横雾  阅读(77)  评论(0)    收藏  举报