首页 > Python > Python文件操作(I/O)
阅读:6,978
Python readline()和readlines()函数:按行读取文件
使用 read() 函数读取文件时,如果文件过大,则一次读取全部内容到内存,容易造成内存不足,而相比每次限制读取字符(或字节)的个数,更推荐大家使用逐行读取文件的方式。
不仅如此,在逐行读取时,还可以限制每次最多读取的字符数,例如:
例如如下程序:
一般情况下,逐行读取只适用于以文本格式打开的文件,道理很简单,只有文本文件才有行的概念,二进制文件没有所谓行的概念。
文件对象提供了 readline() 和 readlines() 两个函数来逐行读取文件,其中 readline() 函数用于读取一行内容,而 readlines() 函数用于读取文件内的所有行。readline()函数
readline() 函数用于读取文件中的一行,包含最后的换行符“\n”。此函数的基本语法格式为:file.readline([size])
其中,file 为打开的文件对象;size 为可选参数,用于指定读取每一行时,一次最多读取的字符数。下面程序示范了使用 readline() 方法来读取文件内容:和 read() 函数一样,此函数成功读取文件数据的前提是,使用 open() 函数指定打开文件的模式必须为 r(只读模式)或 r+(读写模式)。
#a.txt中有两行内容,分别是: #C语言中文网 #http://c.biancheng.net f = open("a.txt", 'r', True) while True: # 每次读取一行 line = f.readline() # 如果没有读到数据,跳出循环 if not line: break # 输出line print(line) f.close()运行结果为:
C语言中文网
http://c.biancheng.net
不仅如此,在逐行读取时,还可以限制每次最多读取的字符数,例如:
f = open("a.txt", 'r', True) while True: # 每次读取一行 line = f.readline(3) # 如果没有读到数据,跳出循环 if not line: break # 输出line print(line) f.close()运行结果为:
C语言
中文网
htt
p:/
/c.
bia
nch
eng
.ne
t
readlines()函数
readlines() 函数用于读取文件中的所有行,它和调用不指定 size 参数的 read() 函数类似,只不过该函数返回是一个字符串列表,其中每个元素为文件中的一行内容。readlines() 函数的基本语法格式如下:和 readline() 函数一样,readlines() 函数在读取每一行时,会连同行尾的换行符一块读取。
file.readlines()
其中,file 为打开的文件对象。和 read()、readline() 函数一样,它要求打开文件的模式使用 r(只读)或者 r+(读写)。例如如下程序:
f = open("a.txt", 'r', True) lines = f.readlines() for line in lines: print(line)运行结果为:
C语言中文网
http://c.biancheng.net
Python交流群:960331733(我们会不定期在群内分享Python知识,上传Python资料)
编程帮,一个分享编程知识的公众号。跟着站长一起学习,每天都有进步。
通俗易懂,深入浅出,一篇文章只讲一个知识点。
文章不深奥,不需要钻研,在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。
文章不涉及代码,不烧脑细胞,人人都可以学习。
当你决定关注「编程帮」,你已然超越了90%的程序员!

微信扫描二维码关注
所有教程
- socket
- C#
- Python
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC
- 数据结构
- C语言项目案例
- C++
- OpenCV
- Qt教程
- Unity 3D
- UE4
- STL
- Redis
- JavaScript
- PHP
- HBase
- NoSQL
- MongoDB
- MATLAB
- Markdown
- Android教程
- vi命令
- TCP/IP
- Spring MVC
- Mybatis
- Hibernate
- Spring Boot
- Maven
- Spring Cloud
- Linux
- Linux命令
- Shell
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频