Python 提供了如下 3 种函数,它们都可以帮我们实现读取文件中数据的操作:

  1. read() 函数:逐个字节或者字符读取文件中的内容,若有参数,则根据指定值读取字节或字符;
  2. readline() 函数:逐行读取文件中的内容;
  3. 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读取文本文件的几种方式