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数据结构之二叉树的遍历实例
Apr 29 Python
python刷投票的脚本实现代码
Nov 08 Python
python抽象基类用法实例分析
Jun 04 Python
Python下的Softmax回归函数的实现方法(推荐)
Jan 26 Python
利用Python脚本生成sitemap.xml的实现方法
Jan 31 Python
在Mac上删除自己安装的Python方法
Oct 29 Python
由面试题加深对Django的认识理解
Jul 19 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
Sep 10 Python
用python实现英文字母和相应序数转换的方法
Sep 18 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
Python操作redis和mongoDB的方法
Dec 19 Python
如何在Python3中使用telnetlib模块连接网络设备
Sep 21 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
如何过滤高亮显示非法字符
2006/10/09 PHP
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
Laravel 5.5 异常处理 &amp; 错误日志的解决
2019/10/17 PHP
Jquery 动态生成表格示例代码
2013/12/24 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
js浏览器html5表单验证
2016/10/17 Javascript
Bootstrap select多选下拉框实现代码
2016/12/23 Javascript
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
[40:53]完美世界DOTA2联赛PWL S3 Magma vs DLG 第二场 12.18
2020/12/20 DOTA
python中的随机函数random的用法示例
2018/01/27 Python
20个常用Python运维库和模块
2018/02/12 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
用Python配平化学方程式的方法
2019/07/20 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
Python计算IV值的示例讲解
2020/02/28 Python
部署Django到阿里云服务器教程示例
2020/06/03 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
Unineed旗下时尚轻奢网站:FABHunt
2019/05/13 全球购物
澳大利亚家具商店:Freedom
2020/12/17 全球购物
linux面试题参考答案(3)
2012/09/13 面试题
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
小学教师寄语大全
2014/04/03 职场文书
《毛主席在花山》教学反思
2014/04/20 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
男方婚前保证书
2015/02/28 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
地雷战观后感
2015/06/09 职场文书
毕业欢送晚会主持词
2019/06/25 职场文书