前言

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

read()

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

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

总结:不适用于读取大文件

简单代码

f = open('test/gbk.txt', 'r+', encoding='utf-8')
print(f.read())

测试结果

123
456
789
@#$%

readline()

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

缺点:比readlines慢得多

简单代码

# 读取一行
f = open('test/gbk.txt', 'r+', encoding='utf-8')
print("读取一行 ====")
line = f.readline()
while line:
# 打印当前文件指针的位置
print("文件指针:", f.tell())
print("行内容:", line)
line = f.readline()

测试结果

读取一行 ====
文件指针: 7
行内容: tests 文件指针: 12
行内容: 123 文件指针: 17
行内容: 456 文件指针: 22
行内容: 789 文件指针: 28
行内容: 菠萝

包含知识点

  • 当你每次调用readline()方法时,你的文件指针就会指向当前行尾部,一个换行符 \n 占两位,一个中文也是
  • 读取到最后一行之后再调用readline()就会返回空,结束循环

readlines()

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

简单代码

# 读取多行
f = open('test/gbk.txt', 'r+', encoding='utf-8', errors='ignore')
print("读取多行 ====")
print(f.readlines())

测试结果

['tests\n', '123\n', '456\n', '789\n', '菠萝']

包含知识点

  • readlines()读取所有行然后把它们作为一个字符串列表返回
  • 返回的每一行内容包含换行符

最新文章

  1. MWeb for iOS 测试版介绍
  2. hive的使用02
  3. 剑指Offer:面试题30——最小的k个数(java实现)
  4. leetcode_199 Binary Tree Right Side View
  5. C#环境datagidview添加删除操作
  6. Start of Something New
  7. IOS 开发 【序】
  8. CI框架源代码阅读笔记3 全局函数Common.php
  9. 使用contentprovider实现的日记(转)
  10. Git常用命令(转)
  11. Activity竟然有两个onCreate方法,可别用错了
  12. emacs search, 讲的很清楚。
  13. Struts2思维导图
  14. hdu-1237 简单计算器---中缀表达式转后缀表达式
  15. objective-c如何在linux下进入Modern模式
  16. 究竟谁在绑架中国的4G政策?
  17. QTTabBar
  18. tomcat 常用命令 网上找的资料
  19. 通用化NPOI导出xls
  20. js判断浏览器类型和版本

热门文章

  1. 最大流入门题目 - poj 1273
  2. Burpsuite设置拦截response
  3. mysql 行增删改查
  4. Django admin的简单使用
  5. windows下RocketMQ安装部署
  6. Commvault逻辑架构及组件说明
  7. 【模板】普通平衡树(权值splay)
  8. redis端口6379的由来
  9. Python变量、方法、类的命名规则
  10. C语言秋季作业4