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()方法时,你的文件指针就会指向当前行尾部,一个换行符 \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()读取所有行然后把它们作为一个字符串列表返回
  • 返回的每一行内容包含换行符

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

时间: 2024-08-03 08:28:00

Python - 文件读取read()、readline()、readlines()区别的相关文章

Python文件读取和数据处理

一.python文件读取 1.基本操作 读取文件信息时要注意文件编码,文件编码有UFT-8.ASCII或UTF-16等. 不过在python中最为常用的是UTF-8,所以如果不特别说明就默认UTF-8编码. 读取文件可以使用 rt 模式下的 open()函数,示例如下: #以字符串的形式读取一个文件 with open('somefile.txt', 'rt') as f: data = f.read() with open('somefile.txt', 'rt') as f: for lin

python read readline readlines区别

file 对象使用 open 函数来创建,下表列出了 file 对象常用函数read.readline.readlines区别: 1.从文件读取指定的字节数,size如果未给定或为负则读取所有. file.read([size]) 2.读取整行,包括 "\n" 字符. file.readline([size]) 3.读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区. file.re

一文贯通python文件读取

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; -webkit-hyphens: auto; font: 24.0px 'Helvetica Neue'; color: #3e3e3e; -webkit-text-stroke: #3e3e3e} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; -webkit-hyphens: auto; font: 16.0px 'Helvetica Neue'; color: #8c8c8c; -w

Python中的read(), readline(), readlines()

文件对象提供了三个"读"方法: .read()..readline() 和 .readlines(). read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中.然而 .read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理. readlines()自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for... in ... 结构进行处理. .readline()每次只读取一

Python——文件读取与写入

一.文件打开方式   打开方式 指针位置 读取的文件类型 r 只读(默认模式) 指针在文件开头,文件不存在则报错 1. 默认读取文件都是ASCII编码的文本文件 2. 如果读取的文件是二进制文件,如图片,视频需要使用'rb'模式 3. 读取非ASCII编码的文本文件,必须 以二进制模式打开,再解码 f=open('E:/test.txt','rb') f.read().decode('gbk') rb 二进制格式只读 指针在文件开头,文件不存在则报错 r+ 可读可写 指针在文件开头,文件不存在则

python 文件读取和写入

f = open('pyehon测试.txt');#py2里可以使用 open 或 file 方法打开文件,py3 只能使用 open. #不加参数时,open为你默认为'r',reading,只读模式,不能写入且文件必须存在,否则引发异常. data = f.read();#读取文件中的所有内容 data2=f.readline();#读取一行内容 data3=f.readlines();#把内容按行读取至一个list中 f.close(); d = open('pyehon测试2.txt',

Python文件读取编码错误问题解决之(PyCharm开发工具默认设置的坑。。。)

刚接触Python学习,正准备做个爬虫的例子,谁知道代码一开始就遇到了一个大坑,狂汗啊. 问题是这样的:我通过代码爬取了博客园首页的HTML代码并存入到blog.txt文件当中,然后准备读取出来之后进行分析,可就在读取文件的这一步出现了问题. 执行读取代码的时候程序总是会抛一个叫 “UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 117274: illegal multibyte sequence

超级基础的python文件读取

读取文件的两种方式: 1.使用os的open函数: import sys,os r=open("data1.txt","r+") fr=r.readlines() for i in fr: print(i.strip())#strip()去掉多余的空行 r.close() 2.使用codecs的open函数: import codecs f=codecs.open("zc.csv" ,"r" , "gbk"

python文件读取:遇见的错误及解决办法

问题一: TypeError: 'str' object is not callable 产生原因: 该错误TypeError: 'str' object is not callable字面上意思:就是str不可以被系统调用, 其实原因就是:你正在调用一个不能被调用的变量或对象,具体表现就是你调用函数.变量的方式错误. 例子: filePath=kwargs['path'] filePathStr=str(filePath) 也就是自己在用的是关键字参数传参,传过来的时候是什么类型,传过来就是什