目录

  • 一、read方法
  • 二、readline方法
  • 三、readlines方法

正文

  python3中,读取文件有三种方法:read()、readline()、readlines()。

  此三种方法,均支持接收一个变量,用于限制每次读取的数据量,但是,通常不会使用。

  本文的目的:分析、总结上述三种读取方式的使用方法及特点。

一、read方法

  特点:读取整个文件,将文件内容放到一个字符串变量中。

  缺点:如果文件非常大,尤其是大于内存时,无法使用read()方法。

 file = open('部门同事联系方式.txt', 'r')  # 创建的这个文件,是一个可迭代对象

 try:
text = file.read() # 结果为str类型
print(type(text)) #打印text的类型
print(text)
finally:
file.close() #关闭文件file
"""
<class 'str'>
李飞 177 70 13888888
王超 170 50 13988888
白净 167 48 13324434
黄山 166 46 13828382
"""

  read()直接读取字节到字符串中,包括了换行符

>>> file = open('兼职模特联系方式.txt', 'r')
>>> a = file.read()
>>> a
'李飞 177 70 13888888\n王超 170 50 13988888\n白净 167 48 13324434\n黄山 166 46 13828382'

二、readline方法

  特点:readline()方法每次读取一行;返回的是一个字符串对象,保持当前行的内存

  缺点:比readlines慢的多

 file = open('部门同事联系方式.txt', 'r')

 try:
while True:
text_line = file.readline()
if text_line:
print(type(text_line), text_line)
else:
break
finally:
file.close()
"""
<class 'str'> 李飞 177 70 13888888 <class 'str'> 王超 170 50 13988888 <class 'str'> 白净 167 48 13324434 <class 'str'> 黄山 166 46 13828382
"""

  readline()读取整行,包括行结束符,并作为字符串返回

>>> file = open('兼职模特联系方式.txt', 'r')
>>> a = file.readline()
>>> a
'李飞 177 70 13888888\n'

三、readlines方法

  特点:一次性读取整个文件;自动将文件内容分析成一个行的列表

 file = open('部门同事联系方式.txt', 'r')

 try:
text_lines = file.readlines()
print(type(text_lines), text_lines)
for line in text_lines:
print(type(line), line)
finally:
file.close()
"""
<class 'list'> ['李飞 177 70 13888888\n', '王超 170 50 13988888\n',
'白净 167 48 13324434\n', '黄山 166 46 13828382']
<class 'str'> 李飞 177 70 13888888 <class 'str'> 王超 170 50 13988888 <class 'str'> 白净 167 48 13324434 <class 'str'> 黄山 166 46 13828382
"""

  readlines()读取所有行,然后把它们作为一个字符串列表返回。

>>> file = open('兼职模特联系方式.txt', 'r')
>>> a = file.readlines()
>>> a
['李飞 177 70 13888888\n', '王超 170 50 13988888\n', '白净 167 48 13324434\n',
'黄山 166 46 13828382']

最新文章

  1. 【干货分享】流程DEMO-制度发文和干部任免
  2. JS瀑布流布局
  3. 消息中间件MetaQ高性能原因分析-转自阿里中间件
  4. ThinkPHP跨控制器调用方法
  5. AppSettings和connectionStrings的却别(转)
  6. .NET蓝牙开源库:32feet.NET
  7. ngModel 值不更新/显示
  8. Java提高篇(三八)-----Java集合细节(四):保持compareTo和equals同步
  9. Java for LeetCode 231 Power of Two
  10. What to call your Academic Event
  11. Android 轻量级ORM数据库开源框架ActiveAndroid 源码分析
  12. 【转载】Spark SQL 1.3.0 DataFrame介绍、使用
  13. c++构造函数谁先执行的问题
  14. 内存数据库MemSQL ——基于内存,MVCC+哈希表、跳表
  15. Oracle 11g 完全卸载
  16. Go - Revel框架介绍
  17. setTimeout小总结
  18. [Swift]LeetCode1003. 检查替换后的词是否有效 | Check If Word Is Valid After Substitutions
  19. 渗透测试学习 四、 HTML基础
  20. Centos7.5 VMtools的安装与卸载

热门文章

  1. 如何利用C# Roslyn编译器写一个简单的代码提示/错误检查?
  2. jQuery选择器 大于 空格 波浪线 加号
  3. Kafka Manager安装部署及使用
  4. Spark集群安装与配置
  5. 数据结构(四十四)交换排序(1.冒泡排序(O(n&#178;))2.快速排序(O(nlogn))))
  6. 如何让OKR实践变得更简单一些
  7. Vue实例与模板语法
  8. 2019年Unity学习资源指南[精心整理]
  9. redis面试题及答案
  10. 第二十六章 system v消息队列(二)