Python文件操作(三)read()、readline()、readlines()区别

本文详细介绍了Python中用于读取文件的三个方法:`read()`、`readline()`和`readlines()`。`read()`一次性读取整个文件内容,适合小文件但可能导致内存问题。`readline()`逐行读取,不占用额外内存,适合连续读取。`readlines()`将文件内容按行转换为列表,方便遍历。在处理大文件时,`readline()`和`readlines()`更为合适。
部署运行你感兴趣的模型镜像

read()、readline()、readlines()区别

读取文件的三个方法:read()readline()readlines()。均可接受一个方法参数用以限制每次读取的数据量,通常使用不多

1.read()

  • 优点:读取整个文件,将文件内容放到一个字符串变量中。

  • 劣势:如果文件非常大,容易导致内存泄漏,尤其是大于内存时,无法使用read()方法。

  • 总结:不适用于读取大文件

2.readline()

  • 优点:readline()方法每次读取一行;返回的是一个字符串对象,保存当前行的内存,不占用内存

  • 缺点:相比readlines较慢

file_name = "cc.txt"

with open(file_name, encoding="utf-8") as can:
    # 读取文件
    print(can.readline()) #读取一行
    print(can.readline())

执行结果:
在这里插入图片描述

3.readlines()

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

file_name = "cc.txt"

with open(file_name, encoding="utf-8") as can:
    c = can.readlines()
    print(c)
    print(c[0])

执行结果:
在这里插入图片描述

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

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

Python中,`read`、`readline` `readlines` 是用于读取文件内容的个常用方法,它们的区别如下: ### `read` 方法 `read` 方法用于读取文件的全部内容或指定字节数的内容。如果不指定参数,它会读取整个文件;如果指定了参数 `n`,则会读取前 `n` 个字符(对于文本文件)或字节(对于二进制文件)。读取完成后,文件指针会移动到读取内容的末尾。 ```python # 读取整个文件 with open('test.txt', 'r') as f: content = f.read() print(content) # 读取前10个字符 with open('test.txt', 'r') as f: partial_content = f.read(10) print(partial_content) ``` ### `readline` 方法 `readline` 方法用于读取文件的一行内容,每次调用该方法时,它会从文件指针当前位置开始读取,直到遇到换行符 `\n` 为止,并返回包含换行符的字符串。如果文件指针已经到达文件末尾,再次调用 `readline` 方法将返回一个空字符串。 ```python with open('test.txt', 'r') as f: line = f.readline() while line: print(line, end="") line = f.readline() ``` ### `readlines` 方法 `readlines` 方法会读取文件的所有行,并将每一行作为一个元素存储在一个列表中返回。文件的每一行(包括换行符)都会成为列表中的一个字符串元素。 ```python with open('test.txt', 'r') as f: lines = f.readlines() for line in lines: print(line, end="") ``` ### 总结 - **功能用途**:`read` 适用于一次性读取整个文件或指定长度的内容;`readline` 适用于逐行处理文件内容;`readlines` 适用于将文件的所有行加载到一个列表中,方便后续遍历处理。 - **返回值**:`read` 返回一个字符串;`readline` 返回包含一行内容的字符串;`readlines` 返回一个包含所有行的列表。 - **内存占用**:`read` `readlines` 会将读取的内容全部加载到内存中,对于大文件可能会导致内存占用过高;`readline` 每次只读取一行,内存占用相对较小。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值