第六课:文件读写主讲人:邓千
目录主要内容MainContents123IO编程文件对象4pandas介绍5pandas案例6pandas练习文件读写
IO编程IO在计算机中指Input/Output,也就是输入和输出。cpu内存与硬盘的读写速度差异过大造成了异步与同步两种方式:现在有100M的数据需要写入磁盘。同步:CPU等待读写完毕,也就是程序暂停执行后续代码,等100M的数据在10秒后写入磁盘,再接着往下执行,这种模式称为同步IO异步:CPU不等待,于是,后续代码可以立刻接着执行,这种模式称为异步IO。往往使用回掉函数实现。
文件类型文本文件存储的是常规字符串,由若干文本行组成,通常每行以换行符\n结尾。常规字符串是指记事本或其他文本编辑器能正常显示、编辑并且人类能够直接阅读和理解的字符串,如英文字母、汉字、数字字符串。二进制文件包含:数据库文件、图像文件、可执行文件、音视频文件、Office文档等等。不能使用记事本或其他文本编辑软件进行正常读写,也无法通过Python的文件对象直接读取和理解二进制文件的内容。
文件对象文件对象是python内置对象之一是一种资源;需要打开文件对象;同时,需要释放文件对象;?文件对象的操作遵循特定的流程:三步–打开:使用open();–操作:读、写、删除等操作;–关闭:使用close()。
文件读取文件对象名=open(文件名[,访问模式[,缓冲区]])文件名:被打开的文件名称或路径访问模式:打开文件后的处理方式具体值见右表,红色标记可与其他组合使用默认值是r缓冲区:读写文件的缓存模式0表示不缓存,1表示缓存,大于1则表示缓冲区的大小,小于0则表示使用默认的缓冲区大小;默认是缓存模式函数返回一个文件对象:利用该对象可以进行各种文件操作;可以访问文件对象的属性。
文件打开典型调用方法?典型调用方式–以读模式打开文件f=open(a.txt)–以读模式打开二进制文件f=open(c.dat,rb)–以读写模式打开文件(文件不存在则创建文件,否则置文件指针到文件尾):f=open(b.csv,a+)
文件对象的属性#filenameproperty.pyimportos?文件对象有如下属性defprintfp():fh=open(sample.txt)try:print(filename:%s%fh.name)print(accessmode:%s%fh.mode)print(encoding:%s%fh.encoding)print(closed:%s%fh.closed)finally:fh.close()#endprintfpif__name__==__main__:printfp()#endif?右面的例子说明了如何使用这些属性
文件对象的常用操作序号方法名称描述1file.close()关闭文件。关闭后文件不能再进行读写操作。2file.flush()刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件,而不是被动的等待输出缓冲区写入。3file.fileno()返回一个整型的文件描述符(filedescriptorFD整型),可以用在如os模块的read方法等一些底层操作上。4file.isatty()如果文件连接到一个终端设备返回True,否则返回False。5file.next()返回文件下一行。6file.read([size])从文件读取指定的字节数,如果未给定或为负则读取所有。7file.readline([size])读取整行,包括\n字符。8file.readlines([sizehint])读取所有行并返回列表,若给定sizeint0,则是设置一次读多少字节,这是为了减轻读取压力。9file.seek(offset[,whence])设置文件当前位置10file.tell()返回文件当前位置。11file.truncate([size])截取文件,截取的字节通过size指定,默认为当前文件位置。12file.write(str)将字符串写入文件,返回的是写入的字符长度。13file.writelines(sequence)向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
读文件?模式一?模式二?模式三handler=open(”sample.txt”)lines=handler.readlines()handler.close()lines=[]lines=[]withopen(”sample.txt”)ashandler=open(”sample.txt”)try:lines=handler.readlines()finally:han