前言

读取文件的三个方法: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()区别的更多相关文章

  1. [python]文件操作read&readline&readlines

    (1)read是将整个文件读入内存,将整个文件的内容当作一个字符串 (2)readline是一行一行的读如内存,每一次读的一行为一个字符串 (3)readlines是一次将整个文件读入内存,但是将整个 ...

  2. python文件读取和写入案例

    python文件读取和写入案例  直接上代码吧 都是说明 百度上找了很多,最终得出思路 没有直接可以读取修改的扩展,只能先读取,然后复制一份,然后在复制出来的文件里面追加保存 然后删除读的那个,但是缺 ...

  3. Python文件读取和数据处理

    一.python文件读取 1.基本操作 读取文件信息时要注意文件编码,文件编码有UFT-8.ASCII或UTF-16等. 不过在python中最为常用的是UTF-8,所以如果不特别说明就默认UTF-8 ...

  4. Python中文件读写read,readline,readlines函数的区别?

    read 每次会读取整个文件 readline 每次读取一行信息 readlines 读取整个文件返回一个列表,列表每个元素代表一行

  5. python read readline readlines区别

    file 对象使用 open 函数来创建,下表列出了 file 对象常用函数read.readline.readlines区别: 1.从文件读取指定的字节数,size如果未给定或为负则读取所有. fi ...

  6. Python 文件读取

    1. 最基本的读文件方法: # File: readline-example-1.py file = open("sample.txt") while 1: line = file ...

  7. Python——文件读取

    我们经常需要从文件中读取数据,因此学会文件的读取很重要,下面来介绍一下文件的读取工作:     1.读取整个文件     pi_digits.text 3.1415926535 8979323846 ...

  8. Python文件读取中:f.seek(0)和f.seek(0,0)有什么区别

    file.seek()方法标准格式是:seek(offset,whence=0)offset:开始的偏移量,也就是代表需要移动偏移的字节数whence:给offset参数一个定义,表示要从哪个位置开始 ...

  9. Python文件读取常用方法

    1. 关于读取文件 f.read() 读取文件中所有内容 f.readline() 读取第一行的内容 f.readlines() 读取文件里面所有内容,把每行的内容放到一个list里面 注:因为文件指 ...

随机推荐

  1. 图解kubernetes调度器ScheduleAlgorithm核心实现学习框架设计

    ScheduleAlgorithm是一个接口负责为pod选择一个合适的node节点,本节主要解析如何实现一个可扩展.可配置的通用算法框架来实现通用调度,如何进行算法的统一注册和构建,如何进行metad ...

  2. Spring Boot2 系列教程(一) | 如何使用 IDEA 构建 Spring Boot 工程

    微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题. Search 前言 新年立了个 flag,好好运营这个公众号.具体来说,就是每周要写两篇文章在这个号发表.刚立的 fla ...

  3. 修理牛棚 贪心 USACO

    今天开始终于可以刷USACO的题啦 准备每一道都发一个题解 1010: 1.3.2 Barn Repair 修理牛棚 时间限制: 1 Sec  内存限制: 128 MB提交: 9  解决: 7[提交] ...

  4. 借助 dp 公式去优化

    题目描述 一天,神犇和 LCR 在玩扑克牌.他们玩的是一种叫做“接竹竿”的游戏. 游戏规则是:一共有 nnn 张牌,每张牌上有一个花色 ccc 和一个点数 vvv,花色不超过 kkk 种.将这些牌依次 ...

  5. Django2.0 配置 media

    1.setting.py文件 MEDIA_URL='/media/' MEDIA_ROOT=os.path.join(BASE_DIR,"media") 注意:MEDIA_ROOT ...

  6. Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name

    目前有发现的两种情况 第一种:是在继承jpa的时候检查实体类@id和@Entity引进的包是否是 import javax.persistence.Id imprt javax.persistence ...

  7. ruby 模块 respond_to

    def hi puts 'hi friend' end module Amodule def self.hello puts 'hello friend' end end def rsp(txt) p ...

  8. C++内存管理与注意事项

    内存是程序运行必不可少的资源,由操作系统分配和管理.作为程序员,我们通常做的只能是申请和归还.本文主要介绍C++内存的申请和释放(归还),以及注意事项. 1 申请和释放内存的运算符 申请 new 释放 ...

  9. Linux上部署web服务器并发布web项目

    近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果.以下是具体的详细步骤以及我对此做的一些总结和个人的一些见解,希望对跟我一 ...

  10. Ubuntu下配置GitHub

    使用GitHub进行代码托管是如此地方便,原来一直在Windows下进行操作,非常的简单,由于其图形化界面将所有这些都隐藏起来了. 还是不得不吐槽一下自己,非得将自己的系统装为Ubuntu... 言归 ...