Python 提供了如下 3 种函数,它们都可以帮我们实现读取文件中数据的操作:
- read() 函数:逐个字节或者字符读取文件中的内容,若有参数,则根据指定值读取字节或字符;
- readline() 函数:逐行读取文件中的内容;
- readlines() 函数:一次性读取文件中多行内容
read()函数
open() 函数,并以可读模式(包括 r、r+、rb、rb+)打开的文件,可以调用 read() 函数逐个字节(或者逐个字符)读取文件中的内容
如果文件是以文本模式(非二进制模式)打开的,则 read() 函数会逐个字符进行读取;反之,如果文件以二进制模式打开,则 read() 函数会逐个字节进行读取。
语法格式
file.read([size])
其中,file 表示已打开的文件对象;size 作为一个可选参数,用于指定一次最多可读取的字符(字节)个数,如果省略,则默认一次性读取所有内容。
demo
def file():
cluster = []
# f = open("./test/cluster.txt", encoding="utf-8")
f = open("cluster.txt", encoding="utf-8")
cluster = f.readline()
cluster = f.read().split('\n')
# cluster.append(c)
f.close()
# print(len(c))
return cluster
注意:文件访问结束后,必须调用 close() 函数关闭文件
指定大小的形式读取文件(10个字节)
cluster = f.read(10).split('\n')
以二进制的形式读取文件
f = open("cluster.txt", 'rb+')
以二进制打印出来的是二进制格式,转换成utf-8可读性文件如下
byt=f.read()
byt.decode('utf-8')
注意:在使用 read() 函数时,如果 Python 解释器提示UnicodeDecodeError
异常,其原因在于,目标文件使用的编码格式和 open() 函数打开该文件时使用的编码格式不匹配
readline()函数
readline() 函数用于读取文件中的一行,包含最后的换行符“\n”
语法格式
f = open("cluster.txt", 'utf-8')
cluster = f.readline()
readlines()函数
readlines() 函数用于读取文件中的所有行,它和调用不指定 size 参数的 read() 函数类似,只不过该函数返回是一个字符串列表,其中每个元素为文件中的一行内容
语法格式
f = open("cluster.txt", 'utf-8')
cluster = f.readlines()
注意:file 为打开的文件对象。和 read()、readline() 函数一样,它要求打开文件的模式必须为可读模式(包括 r、rb、r+、rb+ 4 种)
更多推荐
Python读取文本文件的几种方式
发布评论