Python中read()、readline()和readlines()三者间的区别和用法


Posted in Python onJuly 30, 2017

前言

众所周知在python中读取文件常用的三种方法:read(),readline(),readlines(),今天看项目是又忘记他们的区别了。以前看书的时候觉得这东西很简单,一眼扫过,待到用时却也只知道有这么几个方法,不懂得它的原理与用法。也许吧,没有永远的记忆,况且根本没有用心去记它。话不多说,来一起看看详细的介绍:

准备

假设a.txt的内容如下所示:

Hello
Welcome
What is the fuck...

一、read([size])方法

read([size])方法从文件当前位置起读取size个字节,若无参数size,则表示读取至文件结束为止,它范围为字符串对象

f = open("a.txt")
lines = f.read()
print lines
print(type(lines))
f.close()

输出结果:

Hello
Welcome
What is the fuck...
<type 'str'> #字符串类型

二、readline()方法

从字面意思可以看出,该方法每次读出一行内容,所以,读取时占用内存小,比较适合大文件,该方法返回一个字符串对象。

f = open("a.txt")
line = f.readline()
print(type(line))
while line:
 print line,
 line = f.readline()
f.close()

输出结果:

<type 'str'>
Hello
Welcome
What is the fuck...

三、readlines()方法读取整个文件所有行,保存在一个列表(list)变量中,每行作为一个元素,但读取大文件会比较占内存。

f = open("a.txt")
lines = f.readlines()
print(type(lines))
for line in lines:
 print line,
f.close()

输出结果:

<type 'list'>
Hello
Welcome
What is the fuck...

四、linecache模块

当然,有特殊需求还可以用linecache模块,比如你要输出某个文件的第n行:

# 输出第2行
text = linecache.getline(‘a.txt',2)
print text,

对于大文件效率还可以。

下面是其他网友的补充

"""
1、读取文件的三个方法:read()、readline()、readlines()
2、三个方法均可接受一个变量用以限制每次读取的数据量,通常不使用该变量。
"""

"""
关于read()方法:
1、读取整个文件,将文件内容放到一个字符串变量中
2、如果文件大于可用内存,不可能使用这种处理
"""
file_object = open("test.py",'r') #创建一个文件对象,也是一个可迭代对象
try:
  all_the_text = file_object.read() #结果为str类型
  print type(all_the_text)
  print "all_the_text=",all_the_text
finally:
  file_object.close()

"""
关于readline()方法:
1、readline()每次读取一行,比readlines()慢得多
2、readline()返回的是一个字符串对象,保存当前行的内容
"""
file_object1 = open("test.py",'r')
try:
 while True:
   line = file_object1.readline()
   if line:
     print "line=",line
   else:
     break
finally:
  file_object1.close()

"""
关于readlines()方法:
1、一次性读取整个文件。
2、自动将文件内容分析成一个行的列表。
"""
file_object2 = open("test.py",'r')
try:
 lines = file_object2.readlines()
 print "type(lines)=",type(lines) #type(lines)= <type 'list'>
 for line in lines:
   print "line=",line 
finally:
  file_object2.close()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持

Python 相关文章推荐
python使用urllib2模块获取gravatar头像实例
Dec 18 Python
python 与GO中操作slice,list的方式实例代码
Mar 20 Python
浅谈python numpy中nonzero()的用法
Apr 02 Python
Django添加KindEditor富文本编辑器的使用
Oct 24 Python
python实现比较类的两个instance(对象)是否相等的方法分析
Jun 26 Python
pandas 时间格式转换的实现
Jul 06 Python
docker django无法访问redis容器的解决方法
Aug 21 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
Aug 27 Python
浅谈Python3中print函数的换行
Aug 05 Python
python使用matplotlib:subplot绘制多个子图的示例
Sep 24 Python
python爬虫筛选工作实例讲解
Nov 23 Python
Python与C/C++的相互调用案例
Mar 04 Python
深入探究Django中的Session与Cookie
Jul 30 #Python
python中numpy包使用教程之数组和相关操作详解
Jul 30 #Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
Jul 30 #Python
Python利用BeautifulSoup解析Html的方法示例
Jul 30 #Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 #Python
Python 装饰器使用详解
Jul 29 #Python
python实现数据图表
Jul 29 #Python
You might like
php checkbox 取值详细说明
2010/08/19 PHP
PHP中常用的输出函数总结
2014/09/22 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
php之header的不同用法总结(实例讲解)
2017/11/28 PHP
javascript验证只能输入数字和一个小数点示例
2013/10/21 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
基于javascript实现数字英文验证码
2017/01/25 Javascript
Vue.js如何优雅的进行form validation
2017/04/07 Javascript
解决webpack -p压缩打包react报语法错误的方法
2017/07/03 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
Python中最大最小赋值小技巧(分享)
2017/12/23 Python
Python实现JSON反序列化类对象的示例
2018/01/31 Python
对python requests发送json格式数据的实例详解
2018/12/19 Python
python 子类调用父类的构造函数实例
2020/03/12 Python
python SOCKET编程基础入门
2021/02/27 Python
Staples美国官方网站:办公用品一站式采购
2016/07/28 全球购物
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
高三地理教学反思
2014/01/11 职场文书
销售会计岗位职责
2014/03/15 职场文书
腾讯广告词
2014/03/19 职场文书
论文诚信承诺书
2014/05/23 职场文书
基层党员四风问题自我剖析材料
2014/09/29 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书
党员评议自我评价
2015/03/03 职场文书
文明礼仪倡议书
2015/04/28 职场文书
vue3种table表格选项个数的控制方法
2022/04/14 Vue.js