1、第7章文件,Overview,文件读写*Pandas模块读写常见格式文件*数据可视化,7.1 文件读写,计算机文件,是存储在某种长期储存设备上的一段数据流。所谓“长期储存设备”一般指磁盘、光盘、磁带等。其特点是所存信息可以长期、多次使用,不会因为断电而消失。计算机文件可分为二种:二进制文件和文本文件图形文件及文字处理程序等计算机程序都属于二进制文件。这些文件含有特殊的格式及计算机代码。文本文件则是可以用文字处理程序阅读的简单文本文件。,文件读写步骤,1.打开文件2.处理数据3.关闭文件,显示文件名为7-1.txt的内容,该文件只有一行,textFile=open(7-1.txt,rt)#以文本
2、方式打开t=textFile.readline()print(t)textFile.close()binFile=open(7-1.txt,rb)#以二进制方式打开b=binFile.readline()print(b)binFile.close()程序输出:欢迎学习Python语 言bxbbxb6xd3xadxd1xa7xcfxb0Pythonxd3xefxd1xd4,open函数,fileobj=open(filename,mode)fileobj是open()返回的文件对象filename是该文件的文件名mode是指明文件类型和操作的字符串mode的第一个字母表明对其的操作。mode的第
3、二个字母是文件类型:t(可省略)代表文本类型文件;b代表二进制类型文件。后面的文件处理操作均以文本方式为例。,文件打开模式,文件读写函数,【例 7-2】文件复制,cj.txt 文件是学生一门课的成绩,它的内容如下:97 80 93 69 87 90 84 94 75 76 89 83 83 33 72 48 66 86 9889 89 88 87 63 87 81 100 80 37 68 71 77 98 66 47 29 87 9396 100 70 85 83 35需要把这个文件的内容复制到“cjback.txt”文件中。复制文件不需要考虑行结构,用read函数就可以了。程序:sourc
4、e=open(cj.txt,r)back=open(cjback.txt,w)s=source.read()back.write(s)source.close()back.close(),【例 7-3】计算总评分,文件score.txt是学生一学期的成绩,每一行代表一个学生的成绩,由笔试、平时和实验三部分构成。总评=笔试*50%+平时*25%+实验*25%,readlines函数,f=open(score.txt,r)s=f.readlines()print(s)运行结果:学号 姓名 专业 笔试 平时 实验n,2050921018 詹延峰 计算数学 65 85 76n,2050921036 李
5、 小鹏 金融学类 86 95 85n,2050921039 裴凡法 经济学类 86 95 65n,2040912116 茅舒瑶 社会保障 90 95 100n,2050912017 陈 见影 化学 工程 62 75 92n,2050912064 梅 钦钦 材料科学 87 95 80n,2050109153 王影平 大 气科学 86 89 72n,2050151003 韩平医 化学 工程 82 99 60n,文件逐行读取,f=open(score.txt,r)for line in f.readlines():print(line)程序输出:学号 姓名 专业 笔试 平时 实验2050921018
6、 詹延峰 计算数学 65 85 762050921036 李 小鹏 金融学类 86 95 852050921039 裴凡法 经济学类 86 95 65。,计算总评分,f=open(score.txt,r)head=f.readline()#读表头行newhead=head:9+head9:18+head18:-1+总评成绩#加空格对齐print(newhead)for line in f.readlines():l=line.split()#求总评分 s=round(int(l3)*0.5+int(l4)*0.25+int(l5)*0.25,2)l4=+l4#加空格对齐 l5=+l5#加空格对齐 print(.join(l)+str(s)#加空格对齐,总评成绩,重定向,sys.stdin标准输入sys.stdout标准输出sys.stderr标准错误输出import syss=sys.stdin.readlines()#从文件读入变为从键盘输入 print(s),词频统计(取自pintia网站),请编写程序,对一段英文文本,统计其中所有不同单词的个数,以及词频最大的10%的单词。所谓“