文件和高级数据结构.pptVIP

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Lu Chaojun, SJTU Lu Chaojun, SJTU 文件和高级数据结构 文件处理 字符串,列表,元组,字典等都是内存数据类型. 文件:对存储在磁盘上的一组数据予以命名. 主名+扩展名 目录(文件夹) 路径 最好用/或\\来分隔目录层次 * 文件格式 文本文件:存储无格式字符串 可以逐字节(字符)进行处理 二进制文件:存储二进制数据 不按字节解释 * 文件数据组织 典型的数据组织粒度: 基本数据项 若干数据项构成固定结构的记录 若干记录构成文件 例: 基本数据项:学号,姓名,年龄 一个学生的记录:{学号,姓名,年龄} 一个文件:全体学生的记录 * 文本文件 可视为存储在磁盘上的一个很长的字符串. 单行字符串 多行字符串 行尾(EOL):用特殊字符,如新行(newline)字符. Python用\n表示新行字符,该字符在显示时被解释成新行字符. 例: print “first line\nsecond line” * 文件处理:打开文件 打开文件:将磁盘文件与一个程序变量关联,做好读写准备. 文件变量 = open(文件名,方式) 方式: r,w,a 写打开要小心!可能破坏现有文件 例如 infile = open(myfile,r) outfile = open(myfile,w) oldfile = open(myfile,a) * 文件处理 Disc myfile.py January February March April May CPU MM fv 文件处理:读文件 读文件:读出文件内容 文件变量.read() 文件变量.read(n) 文件变量.readline() 文件变量.readlines() 点表示法:文件实现为对象 文件当前读写位置 * 文件处理:写文件 写文件:将新内容写入文件. 文件变量.write(字符串) 文件变量.writelines(字符串列表) 若想写多行内容,使用\n * 文件处理:关闭文件 关闭文件:取消文件变量与磁盘文件的关联. 文件变量.close() 关闭文件时,系统会将缓存中的文件内容输出到磁盘. 何为缓冲存储区?为什么要缓冲? * 文件读写演示 f1 = open(test.txt,w) f1.write(First line\n) f1.write(Second line\n) f1.close() f2 = open(test.txt,r) f2.readline() f2.readline() f2.readline() f2.close() f3.open(test.txt,a) f3.write(Third line) f3.close() f4 = open(test.txt,r) f4.readlines() * 文件处理程序 典型的代码结构 infile = open(infileName,r) outfile = open(outfileName,w) while True: text = infile.readline() if text == : break do sth with text outfile.write(data) infile.close() outfile.close() * 编程案例:文本分析(1) 输入一个文本文件,对文件内容进行分词(将字符流划分为单词),然后统计文件中的字符数,单词数,每个单词的出现次数以及行数,最后输出统计结果. 用途:自然语言处理,文档相似性比较,搜索引擎等 * 编程案例:文本分析(2) 关键语句(textanalysis.py) numchars = len(f.read()) numlines = len(f.readlines()) numwords = len(string.split(f.read())) try: worddict[w] = worddict[w] + 1 except KeyError: worddict[w] = 1 * 缓冲 将大量数据从一个地方传送到另一个地方时,由于两地步调不一致等原因, 无法一次性传送.这时可以在内存中建立一个缓冲区,一小批一小批地传送. 磁盘到内存 计算机到打印机 编程实例:buffer.py * 数据结构:链表(1) 列表成员间的逻辑关系如何表示? 顺序存储,存储位置就表示其先后关系 非顺序存储,先后关系靠链接来表示 * 数据结构:链表(2) 链表 插入删除很方便 编程实例:linkedlist.py * 数据结构:堆栈(1) 堆栈是数据集合体,其中数据具有“后进先出(LIFO)”性质,即最后加入堆栈的数据总是首先取出.

文档评论(0)

1234554321 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档