(7文件操作)将键盘输入n个学生信息写入二进制文件stu.dat,其中学号11个字符长度、姓名10个字符长度的字符串,都以GBK格式保存,年龄以4字节有符号整型数保存,成绩以双精度浮点数保存,不要求字节对齐,数值数据字节顺序按本地机器,数据类型字节数按默认。运行后首先输入整数n,然后输入n个学生信息。要求:将输入的年龄加1以后保存、将输入的成绩加5以后保存

样例输入

2
20180861101 张亚佳 18 91.5
20180861102 韩云飞 19 89.5

 

样例输出

文件内容:[b'20180861101\xd5\xc5\xd1\xc7\xbc\xd1\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00 X@20180861102\xba\xab\xd4\xc6\xb7\xc9\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\xa0W@']

 

解题代码

#coding=gbk
import struct
from readbin import ReadFile
import os
FileName="stu.dat"
if os.path.exists(FileName):#如果文件存在
    os.remove(FileName)#删除文件
""""""
n=int(input())
f=open("stu.dat","wb")
for i in range(n):
    xh,xm,age,cj=map(str,input().split())
    age=int(age)+1
    cj=float(cj)+5.0
    stu=struct.pack('=11s10sid',bytes(xh,"GBK"),bytes(xm,"GBK"),age,cj)
    f.write(stu)
f.close()
""""""
ReadFile(FileName)#输出保存内容

 

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