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深入学习之内存管理
Aug 31 Python
跟老齐学Python之list和str比较
Sep 20 Python
python中Flask框架简单入门实例
Mar 21 Python
python计算文本文件行数的方法
Jul 06 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
Jan 20 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
Mar 30 Python
Django 实现购物车功能的示例代码
Oct 08 Python
python3使用pandas获取股票数据的方法
Dec 22 Python
利用python计算时间差(返回天数)
Sep 07 Python
将python安装信息加入注册表的示例
Nov 20 Python
Python实现的北京积分落户数据分析示例
Mar 27 Python
python 实时调取摄像头的示例代码
Nov 25 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实现的最大正向匹配算法示例
2017/12/19 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
广告显示判断
2006/08/31 Javascript
js实现可拖动DIV的方法
2013/12/17 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
JavaScript匿名函数之模仿块级作用域
2015/12/12 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
jQuery插件DataTables分页开发心得体会
2017/08/22 jQuery
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
2019/05/10 Javascript
nodemon实现Typescript项目热更新的示例代码
2019/11/19 Javascript
JavaScript实现横版菜单栏
2020/03/17 Javascript
理解JavaScript中的Proxy 与 Reflection API
2020/09/21 Javascript
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
在VS Code上搭建Python开发环境的方法
2018/04/06 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
python库matplotlib绘制坐标图
2019/10/18 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
python实现查找所有程序的安装信息
2020/02/18 Python
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
英国最好的温室之家:Greenhouses Direct
2019/07/13 全球购物
BIFFI美国站:意大利BIFFI BOUTIQUES豪华多品牌时装零售公司
2020/02/11 全球购物
优秀大学生推荐信范文
2013/11/28 职场文书
国家励志奖学金个人先进事迹材料
2014/05/04 职场文书
安全生产大检查方案
2014/05/07 职场文书
设计大赛策划方案
2014/06/13 职场文书
房产公证委托书范本
2014/09/20 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
个人培训总结
2015/03/05 职场文书
幼师自荐信范文
2015/03/06 职场文书
2016大学自主招生推荐信范文
2015/03/23 职场文书