前言

读取文件的三个方法: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. django count(*) 慢查询优化

    分页显示是web开发常见需求,随着表数据增加,200万以上时,翻页越到后面越慢,这个时候慢查询成为一个痛点,关于count(*)慢的原因,简单说会进行全表扫描,再排序,导致查询变慢.这里介绍postg ...

  2. 关于python列表的一些基础知识。

    因学校实验室要求,自学了python,一开始看书觉得太简单了,也没有多动手去尝试,直到看完了前八章突然想动手试试的时候,人傻了,深刻体会到了好记性不如烂笔头的道理,故整理一些python列表的操作. ...

  3. 安装numpy、matplotlib

    一.安装numpy 1.下载 https://pypi.org/project/numpy/#files 2.安装 pip3 install numpy-1.17.3-cp37-cp37m-win_a ...

  4. css 脱离文档流

    一.float <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=&quo ...

  5. 认识一下 RabbitMQ

    分布式系统中,如何在各个应用之间高效的进行通信,是系统设计中的一个关键. 使用 消息代理(message broker) 是一个优雅的解决方案. RabbitMQ 就是一个被广泛应用的消息代理,遵循 ...

  6. [bzoj1297] [洛谷P4159] [SCOI2009] 迷路

    Description windy在有向图中迷路了. 该有向图有 N 个节点,windy从节点 0 出发,他必须恰好在 T 时刻到达节点 N-1. 现在给出该有向图,你能告诉windy总共有多少种不同 ...

  7. Java服务端两个常见的并发错误

    理想情况来讲,开发在开始编写代码之前就应该讲并发情况考虑进去,但是大多数实际情况确是,开发压根不会考虑高并发情况下的业务问题.主要原因还是因为业务极难遇到高并发的情况. 下面列举两个比较常见的后端编码 ...

  8. python  获取网页图片 十月底的 一弹

    #!/usr/bin/pythonimport reimport urllib def getHtml(url):    page=urllib.urlopen(url)    html=page.r ...

  9. P1075,P1138(洛谷)

    今天难得做了做洛谷的题,而且还是两个! P1075:已知正整数n是两个不同的质数的乘积,试求出两者中较大的那个质数.输入格式:一个正整数n.输出格式:一个正整数p,即较大的那个质数. 第一版代码: # ...

  10. Windows10怎么用Administrator登录?

    1.首先按下快捷键win+X键, 2.然后在命令提示符中输入命令“net user administrator /active:yes”后回车 3.此时administrator管理员账户已开启,点击 ...