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()读取所有行然后把它们作为一个字符串列表返回
- 返回的每一行内容包含换行符
Python - 文件读取read()、readline()、readlines()区别的更多相关文章
- [python]文件操作read&readline&readlines
(1)read是将整个文件读入内存,将整个文件的内容当作一个字符串 (2)readline是一行一行的读如内存,每一次读的一行为一个字符串 (3)readlines是一次将整个文件读入内存,但是将整个 ...
- python文件读取和写入案例
python文件读取和写入案例 直接上代码吧 都是说明 百度上找了很多,最终得出思路 没有直接可以读取修改的扩展,只能先读取,然后复制一份,然后在复制出来的文件里面追加保存 然后删除读的那个,但是缺 ...
- Python文件读取和数据处理
一.python文件读取 1.基本操作 读取文件信息时要注意文件编码,文件编码有UFT-8.ASCII或UTF-16等. 不过在python中最为常用的是UTF-8,所以如果不特别说明就默认UTF-8 ...
- Python中文件读写read,readline,readlines函数的区别?
read 每次会读取整个文件 readline 每次读取一行信息 readlines 读取整个文件返回一个列表,列表每个元素代表一行
- python read readline readlines区别
file 对象使用 open 函数来创建,下表列出了 file 对象常用函数read.readline.readlines区别: 1.从文件读取指定的字节数,size如果未给定或为负则读取所有. fi ...
- Python 文件读取
1. 最基本的读文件方法: # File: readline-example-1.py file = open("sample.txt") while 1: line = file ...
- Python——文件读取
我们经常需要从文件中读取数据,因此学会文件的读取很重要,下面来介绍一下文件的读取工作: 1.读取整个文件 pi_digits.text 3.1415926535 8979323846 ...
- Python文件读取中:f.seek(0)和f.seek(0,0)有什么区别
file.seek()方法标准格式是:seek(offset,whence=0)offset:开始的偏移量,也就是代表需要移动偏移的字节数whence:给offset参数一个定义,表示要从哪个位置开始 ...
- Python文件读取常用方法
1. 关于读取文件 f.read() 读取文件中所有内容 f.readline() 读取第一行的内容 f.readlines() 读取文件里面所有内容,把每行的内容放到一个list里面 注:因为文件指 ...
随机推荐
- 图解kubernetes调度器ScheduleAlgorithm核心实现学习框架设计
ScheduleAlgorithm是一个接口负责为pod选择一个合适的node节点,本节主要解析如何实现一个可扩展.可配置的通用算法框架来实现通用调度,如何进行算法的统一注册和构建,如何进行metad ...
- Spring Boot2 系列教程(一) | 如何使用 IDEA 构建 Spring Boot 工程
微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题. Search 前言 新年立了个 flag,好好运营这个公众号.具体来说,就是每周要写两篇文章在这个号发表.刚立的 fla ...
- 修理牛棚 贪心 USACO
今天开始终于可以刷USACO的题啦 准备每一道都发一个题解 1010: 1.3.2 Barn Repair 修理牛棚 时间限制: 1 Sec 内存限制: 128 MB提交: 9 解决: 7[提交] ...
- 借助 dp 公式去优化
题目描述 一天,神犇和 LCR 在玩扑克牌.他们玩的是一种叫做“接竹竿”的游戏. 游戏规则是:一共有 nnn 张牌,每张牌上有一个花色 ccc 和一个点数 vvv,花色不超过 kkk 种.将这些牌依次 ...
- Django2.0 配置 media
1.setting.py文件 MEDIA_URL='/media/' MEDIA_ROOT=os.path.join(BASE_DIR,"media") 注意:MEDIA_ROOT ...
- Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name
目前有发现的两种情况 第一种:是在继承jpa的时候检查实体类@id和@Entity引进的包是否是 import javax.persistence.Id imprt javax.persistence ...
- ruby 模块 respond_to
def hi puts 'hi friend' end module Amodule def self.hello puts 'hello friend' end end def rsp(txt) p ...
- C++内存管理与注意事项
内存是程序运行必不可少的资源,由操作系统分配和管理.作为程序员,我们通常做的只能是申请和归还.本文主要介绍C++内存的申请和释放(归还),以及注意事项. 1 申请和释放内存的运算符 申请 new 释放 ...
- Linux上部署web服务器并发布web项目
近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果.以下是具体的详细步骤以及我对此做的一些总结和个人的一些见解,希望对跟我一 ...
- Ubuntu下配置GitHub
使用GitHub进行代码托管是如此地方便,原来一直在Windows下进行操作,非常的简单,由于其图形化界面将所有这些都隐藏起来了. 还是不得不吐槽一下自己,非得将自己的系统装为Ubuntu... 言归 ...