首页 / 知识
Python文件读取相关方法
2023-11-12 13:36:00
我们知道,对文件的读取操作需要将文件中的数据加载到内存中,而上面所用到的read()方法会一次性把文件中所有的内容全部加载到内存中。这明显是不合理的,当遇到一个几个G的的文件时,必然会耗光机器的内存。这里我们来介绍下Python中读取文件的相关方法:
方法描述
read()一次读取文件所有内容,返回一个str
read(size)每次最多读取指定长度的内容,返回一个str;在Python2中size指定的是字节长度,在Python3中size指定的是字符长度
readlines()一次读取文件所有内容,按行返回一个list
readline()每次只读取一行内容
此外,还要两个与文件指针位置相关的方法
方法描述
seek(n)将文件指针移动到指定字节的位置
tell()获取当前文件指针所在字节位置
下面来看下操作实例
1.读取指定长度的内容
Python2
withopen('song.txt','r')asf:
print(f.read(12).decode('utf-8'))
输出结果:
匆匆那年
结果说明:Python2中read(size)方法的size参数指定的要读取的字节数,而song.txt文件是UTF-8编码的内容,一个汉字占3个字节,因此12个字节刚好是4个汉字。
Python3
withopen('song.txt','r',encoding='utf-8')asf:
print(f.read(12))
输出结果:
匆匆那年我们究竟说
结果说明:Python3中read(size)方法的size参数指定的要读取的字符数,这与文件的字符编码无关,就是返回12个字符。
2.读取文件中的一行内容
Python2
withopen('song.txt','r',encoding='utf-8')asf:
print(f.readline())
Python3
withopen('song.txt','r')asf:
print(f.readline().decode('utf-8'))
输出结果都一样:
匆匆那年我们究竟说了几遍再见之后再拖延
3.遍历打印一个文件中的每一行
这里我们只以Python3来进行实例操作,Python2仅仅是需要在读取到内容后进行手动解码而已,上面已经有示例。
方式一:先一次性读取所有行到内存,然后再遍历打印
withopen('song.txt','r',encoding='utf-8')asf:
forlineinf.readlines():
print(line)
输出结果:
匆匆那年我们究竟说了几遍再见之后再拖延
可惜谁有没有爱过不是一场七情上面的雄辩
匆匆那年我们一时匆忙撂下难以承受的诺言
只有等别人兑现
这种方式的缺点与read()方法是一样的,都是会消耗大量的内存空间。
方式二:通过迭代器一行一行的读取并打印
withopen('song.txt','r',encoding='utf-8',newline='')asf:
forlineinf:
print(line)
输出结果:
匆匆那年我们究竟说了几遍再见之后再拖延
可惜谁有没有爱过不是一场七情上面的雄辩
匆匆那年我们一时匆忙撂下难以承受的诺言
只有等别人兑现
另外,发现上面的输出结果中行与行之间多了一个空行。这是因为文件每一行的默认都有换行符,而print()方法也会输出换行,因此就多了一个空行。去掉空行也比较简单:可以用line.rstrip()去除字符串右边的换行符,也可以通过print(line,end='')避免print方法造成的换行。
file类的其他方法:
方法描述
flush()刷新缓冲区数据,将缓冲区中的数据立刻写入文件
next()返回文件下一行,这个方法也是file对象实例可以被当做迭代器使用的原因
truncate([size])截取文件中指定字节数的内容,并覆盖保存到文件中,如果不指定size参数则文件将被清空;Python2无返回值,Python3返回新文件的内容字节数
write(str)将字符串写入文件,没有返回值
writelines(sequence)向文件写入一个字符串或一个字符串列表,如果字符串列表中的元素需要换行要自己加入换行符
fileno()返回一个整型的文件描述符,可以用于一些底层IO操作上(如,os模块的read方法)
isatty()判断文件是否被连接到一个虚拟终端,是则返回True,否则返回False
以上内容为大家介绍了Python文件读取相关方法,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
python的调用绑定方法和非绑定方法
python的调用绑定方法和非绑定方法,代码,方法,实例,第一,培训,时计,奇数,偶数,参数,定义,在Python中,如果用实例去调用方法,这种限制就被称为PyPython网络编程调用接收数据的三种
Python网络编程调用接收数据的三种方法,数据,代码,基础,通用,通讯,服务,网络,培训,方法,报文,最近在使用python进行网络编程开发一个通用的tc用Python爬取百度搜索结果
用Python爬取百度搜索结果,百度,项目,分析,软件,网址,广告,时间,培训,粮食,标题,一、前言众所周知,百度上直接搜索关键字会出来一大堆东西,时常Python实现批量文件的压缩处理
Python实现批量文件的压缩处理,项目,信息,分析,数据,软件,培训,文件夹,文件,源文件,目标,一、前言接到项目求助,需要对上千个文件夹中的文件进数据科学领域Python比R语言更好
数据科学领域Python比R语言更好,数据,公司,工具,时间,项目,工作,庞大,受益,系统,代码,经常有学员问我们,在数据科学领域里,到底是该选Python呢,Python 3.6 中针对文件系统的神奇
Python 3.6 中针对文件系统的神奇方法,数字,代码,数据,标准,信息,培训,首次,工作,文件名,常数,Python3.6首次发布于2016年,尽管它已经发布了很Python 之模块重载的五种方法
Python 之模块重载的五种方法,环境,培训,方法,模块,文件夹,例子,下面,内容,语句,请看,python环境准备新建一个foo文件夹,其下包含一个bar.py文Python如何在后台自动解压各种压缩
Python如何在后台自动解压各种压缩文件?,代码,综合,工具,分析,检测,培训,文件,文件夹,模块,结尾,一、需求描述编写一个Python程序,每次下载压Python语言自带的数据结构有哪些
Python语言自带的数据结构有哪些,异常,数字,数据,元素,序列,培训,位置,名称,分析,括号,Python作为一种脚本语言,其要求强制缩进,使其易读、美观提升Python数据分析能力的方法
提升Python数据分析能力的方法,分析,数据,工具,代码,时间,环境,报告,信息,培训,标准,1.Pandas分析包这个工具的好处是显而易见的。下面的动画Python处理文件的几个常用小知识
Python处理文件的几个常用小知识,数据,代码,信息,文件,系统,培训,分析,交通,名称,名字,python这门语言有个很大的用途就是使用它来进行文件处数据科学中必须了解的Python核心库
数据科学中必须了解的Python核心库,数据,生产,代码,标准,分析,培训,图片,工具,统一,涉足,python有三个核心数据科学库,在此基础上还创建了许多