码迷,mamicode.com
首页 > 编程语言 > 详细

Python - 文件读取read()、readline()、readlines()区别

时间:2020-02-23 18:26:43      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:class   参数   open   大文件   lin   无法   前言   color   数据   

前言

读取文件的三个方法: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()读取所有行然后把它们作为一个字符串列表返回
  • 返回的每一行内容包含换行符

 

Python - 文件读取read()、readline()、readlines()区别

标签:class   参数   open   大文件   lin   无法   前言   color   数据   

原文地址:https://www.cnblogs.com/poloyy/p/12350736.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!