使用 read() 函数读取文件时,如果文件过大,则一次读取全部内容到内存,容易造成内存不足,而相比每次限制读取字符(或字节)的个数,更推荐大家使用逐行读取文件的方式。
一般情况下,逐行读取只适用于以文本格式打开的文件,道理很简单,只有文本文件才有行的概念,二进制文件没有所谓行的概念。
文件对象提供了
readline()
和
readlines()
两个函数来逐行读取文件,其中 readline() 函数用于读取一行内容,而 readlines() 函数用于读取文件内的所有行。
readline()函数
readline() 函数用于读取文件中的一行,包含最后的换行符“\n”。此函数的基本语法格式为:
file.readline([size])
其中,file 为打开的文件对象;size 为可选参数,用于指定读取每一行时,一次最多读取的字符数。
和 read() 函数一样,此函数成功读取文件数据的前提是,使用 open() 函数指定打开文件的模式必须为 r(只读模式)或 r+(读写模式)。
下面程序示范了使用 readline() 方法来读取文件内容:
#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
由于 readline() 函数在读取文件中一行的内容时,会读取最后的换行符“\n”,再加上 print() 函数输出内容时默认会换行,所以输出结果中会看到多出了一个空行。
不仅如此,在逐行读取时,还可以限制每次最多读取的字符数,例如:
f = open("a.txt", 'r', True)
while True:
# 每次读取一行
line = f.readline(3)
# 如果没有读到数据,跳出循环
if not line: break
# 输出line
print(line)
f.close()
运行结果为:
readlines()函数
readlines() 函数用于读取文件中的所有行,它和调用不指定 size 参数的 read() 函数类似,只不过该函数返回是一个字符串列表,其中每个元素为文件中的一行内容。
和 readline() 函数一样,readlines() 函数在读取每一行时,会连同行尾的换行符一块读取。
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 read
Python write和writelines
下一页
>
socket
Python基础教程
MySQL函数
MySQL
C语言入门
C语言专题
C语言编译器
C语言编程实例
GCC编译器
C语言项目案例
C++教程
OpenCV
Unity 3D教程
Redis
Android教程
JavaScript
Mybatis
Spring Cloud
Maven
Spring Boot
Spring MVC
Hibernate
Linux
Linux命令
Shell脚本
Java教程
Spring
Servlet
Struts2
Java Swing
JSP教程
CSS教程
TensorFlow
Go语言教程
Docker
VIP视频
C++常对象和常成员函数详解
Java多态性:Java什么是多态?
C++ cin:读取键盘输入的数据
C++ deque和queue容器
阳光学院汇编视频教程(11课)
C#静态类
Android 3D绘图开发简介
学Python,不需要有编程基础!
JSP Out对象的其他println方法
Spring getBeansOfType方法:获取指定类型的JavaBean