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实现QQ游戏大家来找茬辅助工具
Sep 14 Python
python遍历类中所有成员的方法
Mar 18 Python
举例详解Python中循环语句的嵌套使用
May 14 Python
Python中的zipfile模块使用详解
Jun 25 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
Python利用Scrapy框架爬取豆瓣电影示例
Jan 17 Python
Python数组并集交集补集代码实例
Feb 18 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
Feb 18 Python
Python3监控疫情的完整代码
Feb 20 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
Oct 18 Python
PyTorch中的torch.cat简单介绍
Mar 17 Python
Python用tkinter实现自定义记事本的方法详解
Mar 31 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
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
一个简单的网页密码登陆php代码
2012/07/17 PHP
php中运用http调用的GET和POST方法示例
2014/09/29 PHP
php实现图片添加描边字和马赛克的方法
2014/12/10 PHP
Laravel中前端js上传图片到七牛云的示例代码
2017/09/04 PHP
php 中phar包的使用教程详解
2018/10/26 PHP
laravel请求参数校验方法
2019/10/10 PHP
自定义百度分享的分享按钮
2015/03/18 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
2016/08/01 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
JQuery 选择器、DOM节点操作练习实例
2017/09/28 jQuery
vue.js 嵌套循环、if判断、动态删除的实例
2018/03/07 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
2020/02/28 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
2020/03/07 Javascript
vue-cli3 热更新配置操作
2020/09/18 Javascript
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
Python字符串格式化输出代码实例
2019/11/22 Python
Python 生成一个从0到n个数字的列表4种方法小结
2019/11/28 Python
Django后端发送小程序微信模板消息示例(服务通知)
2019/12/17 Python
Python绘图之柱形图绘制详解
2020/07/28 Python
Django Form常用功能及代码示例
2020/10/13 Python
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
幼儿园春游活动方案
2014/01/19 职场文书
办理房产过户的委托书
2014/09/14 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
2015年质量管理工作总结范文
2015/05/18 职场文书
银行资信证明
2015/06/17 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书