最新消息: 新版网站上线了!!!

python 读取txt多行文件内容read和readline和readlines区别

前提:testSet.txt文件内容

-0.017612   14.053064   0

-1.395634   4.662541    1

-0.752157   6.538620    0

-1.322371   7.152853    0

 

 

一、代码:

filename = './testSet.txt'

def loadDataSet():

    dataMat = []

    labalMat = []

    fread = open(filename)

    #print(fread.read())

    print(fread.readline())

    print(fread.readlines())

loadDataSet()

 

二、打印结果

1、print(fread.readline())打印结果如下:

-0.017612   14.053064   0

 

2、print(fread.read())打印结果如下:

-0.017612   14.053064   0

-1.395634   4.662541    1

-0.752157   6.538620    0

-1.322371   7.152853    0

 

3、print(fread.readlines())打印结果

['-0.017612   14.053064   0\n', '-1.395634   4.662541    1\n', '-0.752157   6.538620    0\n', '-1.322371   7.152853    0']

 

 

三、分析

1、read() 方法用于从文件读取指定的字节数,如果未给定或为负则读取所有。

2、readline() 方法用于从文件读取整行,包括 "\n" 字符。如果指定了一个非负数的参数,则返回指定大小的字节数,包括 "\n" 字符。readline()方法每次读取一行;返回的是一个字符

 

串对象,保持当前行的内存

3、readlines() 方法用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理。如果碰到结束符 EOF 则返回空字符串。

 

四、使用场景:

1、read()是最快的,当然其功能最简约的,在很多情况下不能满足需求。 

2、readline和readlines()在功能上类似,但是在内存足够的情况下使用readlines()可以很明显地提高执行效率。

 

五、注意事项(易错处)

 

readLine()

功能:读取一个文本行。 

一定要注意: 

 

1、读入的数据要注意有/r或/n或/r/n 

 

2、没有数据时会阻塞,在数据流异常或断开时才会返回null 

 

3、使用socket之类的数据流时,要避免使用readLine(),以免为了等待一个换行/回车符而一直阻塞 

 

4、readLine()是一个阻塞函数,当没有数据读取时,就一直会阻塞在那,而不是返回null 

 

5、readLine()只有在数据流发生异常或者另一端被close()掉时,才会返回null值。 

 

6、如果不指定buffer大小,则readLine()使用的buffer有8192个字符。在达到buffer大小之前,只有遇到”/r”、”/n”、”/r/n”才会返回。 

 

7、该方法读取一行文本,当遇到换行符”\n”,回车符”\r”或者回车符后面紧跟着换行符时,该行结束并返回。没有数据时,将会一直处于等待状态。因此在进行网络连接时,应该避免使用该方法。

 

 

 

read()

功能:读取单个字符的个数,如果已经读完的话会返回-1 (其范围从 0 到 65535 )

 

转载请注明:谷谷点程序 » python 读取txt多行文件内容read和readline和readlines区别