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

Posted 阿菠萝阿瑶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python - 文件读取read()readline()readlines()区别相关的知识,希望对你有一定的参考价值。

前言

读取文件的三个方法: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()方法时,你的文件指针就会指向当前行尾部,一个换行符   占两位,一个中文也是
  • 读取到最后一行之后再调用readline()就会返回空,结束循环

 

readlines()

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

 

简单代码

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

测试结果

[tests
, 123
, 456
, 789
, 菠萝]

包含知识点

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

 

以上是关于Python - 文件读取read()readline()readlines()区别的主要内容,如果未能解决你的问题,请参考以下文章

python pandas 中文件的读写——read_csv()读取文件

Python 文件 read() 方法

python中read() ,readline()以及readlines()区别

java 用FileInputStream中read方法读取文件出现乱码

python中read,readline和readlines的区别

python3读取文件时readline()和read()的区别