第10章 基于文件的持久化-习题及答案- -Python程序设计基础教程(微课版)_第1页
第10章 基于文件的持久化-习题及答案- -Python程序设计基础教程(微课版)_第2页
第10章 基于文件的持久化-习题及答案- -Python程序设计基础教程(微课版)_第3页
第10章 基于文件的持久化-习题及答案- -Python程序设计基础教程(微课版)_第4页
第10章 基于文件的持久化-习题及答案- -Python程序设计基础教程(微课版)_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

厦门大学林子雨编著《Python程序设计基础教程(微课版)》教材配套实验指南第10章基于文件的持久化 主讲教师:林子雨/linziyu第1页厦门大学林子雨编著《Python程序设计基础教程(微课版)》教材习题题目第10章基于文件的持久化1.编写一个程序,将一张名片序列化为字符流。2.编写一个程序,将一张名片序列化为字节流。3.编写一个程序,列出一个目录里的所有文件,包含子目录。4.编写一个程序,计算某个目录里所有文件的大小。5.编写一个程序,统计某个目录下(含子目录)里的所有目录数和文件数。6.编写一个程序,返回目录下(不含子录入)所有被占用的文件。7.编写一个程序,复制整个目录,包含目录下的所有子目录和文件。8.编写一个程序,将序列化的名片存入某个文件中。9.编写一个程序,不使用load和dump读写一个JSON文件。1.编写一个程序,将一张名片序列化为字符流。【参考答案】importjsonvCard={'firstNmae':'名','lastNmae':'姓','title':'职位','mobilePhoneNumber''organization':'公司名','weChantNumber':'微信号'}data=json.dumps(vCard,indent=4)print(data)2.编写一个程序,将一张名片序列化为字节流。【参考答案】importpicklevCard=[{'firstNmae':'名','lastNmae':'姓','title':'职位','mobilePhoneNumber''organization':'公司名','weChantNumber':'微信号'},{'firstNmae':'名','lastNmae':'姓','title':'职位','mobilePhoneNumber''organization':'公司名','weChantNumber':'微信号'},{'firstNmae':'名','lastNmae':'姓','title':'职位','mobilePhoneNumber''organization':'公司名','weChantNumber':'微信号'}]data=pickle.dumps(vCard)print(data)3.编写一个程序,列出一个目录里的所有文件,包含子目录。【参考答案】defprintFiles(path):importospresent_dir=os.listdir(path)child_dirs=[iforiinpresent_dirifos.path.isdir(os.path.join(path,i))]ifchild_dirs:fordirinchild_dirs:printFiles(path+"\\"+dir)files=[iforiinpresent_dirifos.path.isfile(os.path.join(path,i))]forfileinfiles:print(path+"\\"+file)printFiles(r"C:\Python\code")4.编写一个程序,计算某个目录里所有文件的大小。【参考答案】defcalcSize(path):importossize=0present_dir=os.listdir(path)child_dirs=[iforiinpresent_dirifos.path.isdir(os.path.join(path,i))]ifchild_dirs:fordirinchild_dirs:calcSize(path+"\\"+dir)files=[iforiinpresent_dirifos.path.isfile(os.path.join(path,i))]forfileinfiles:size+=os.path.getsize(path+"\\"+file)returnsizeprint(str(calcSize(r"C:\Python\code")/float(1024*1024))+"MB")5.编写一个程序,统计某个目录下(含子目录)里的所有目录数和文件数。【参考答案】defcountFiles(path):importoscount=0;forcur,dirs,filesinos.walk(path):count=count+len(dirs)+len(files)print(f"总目录/文件数:{count}");countFiles(r"C:\Python\code")6.编写一个程序,返回目录下(不含子录入)所有被占用的文件。【参考答案】defprintFiles(path):importospresent_dir=os.listdir(path)files=[iforiinpresent_dirifos.path.isfile(os.path.join(path,i))]forfileinfiles:try:f=open(path+"\\"+file,"r")f.close()except:print(file)printFiles(r"C:\Users\python\Desktop\临时文件")7.编写一个程序,复制整个目录,包含目录下的所有子目录和文件。【参考答案】defcopy1(src,tar):importosimportshutilifnotos.path.exists(tar):os.makedirs(tar)ifos.path.exists(src):forroot,dirs,filesinos.walk(src):forfileinfiles:src_file=os.path.join(root,file)shutil.copy(src,tar)defcopy(src,tar):importosimportshutilpresent_dir=os.listdir(src)child_dirs=[iforiinpresent_dirifos.path.isdir(os.path.join(src,i))]ifnotos.path.exists(tar):os.makedirs(tar)ifchild_dirs:fordirinchild_dirs:copy(src+"\\"+dir,tar+"\\"+dir)files=[iforiinpresent_dirifos.path.isfile(os.path.join(src,i))]forfileinfiles:shutil.copy(src+"\\"+file,tar+"\\"+file)copy("C:\编程\学科实践2-AI","C:\编程\学科实践2-AI1")8.编写一个程序,将序列化的名片存入某个文件中。【参考答案】importjsonimportosvCard={'firstNmae':'名','lastNmae':'姓','title':'职位','mobilePhoneNumber''organization':'公司名','weChantNumber':'微信号'}file=open("D:\\编程\\Python大纲\\vCard.json","w")file.write(json.dumps(vCard))file.close()9.编写一个程序,不使用load和dump读写一个JSON文件。【参考答案】下面是一个JSON文件json.txt:{"firstName":"名","lastName":"姓","title":"职位","mobilePhoneNumber":,"organization":"公司名","weChantNumber":"微信号"}下面是读写JSON文件的程序:f=open('json.txt','r+',encoding='utf-8')str=f.read()obj=eval(str)print(obj)print(obj['fir

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论