首页 > Python笔记 阅读数:43

Python readline()方法:读取一行或整行文本

read( ) 函数使用起来很方便。但当文件很大,难以一次性读入内存,或数据分析的“颗粒度”为行时,就需要采用逐行读取的方式,这时就需要利用 readline( ) 方法。readline( ) 用于从文件中读取整行,包括换行符\n本身。如果 readline( ) 指定了一个非负数的参数,则将返回指定大小的字节数,包括\n字符。

使用 readline( ) 方法的示例如下:
In [12]: fhand.seek(0)   #文件指针复位到起始点
Out[12]: 0
In [13]: fhand.readline()   #读取第1行,文件指针下移
Out [ 13]: 'In this tutorial, you' 11 learn about Python operator precedence and associativity. \n'
In [14]: fhand.readline()    #读取第2行,文件指针下移
Out[14]: 'This topic is crucial for programmers to understand the semantics of Python operators.\n'
In [15]: fhand.readline(10)   #读取第3行的前10个字符,文件指针下移
Out [ 15]: 'After read'

当然,我们也可以利用 for 或 while 循环逐行读取,直到文件结尾。

有时候,我们需要一次性读取所有行,这时就需要用到 readlines( ) 方法。虽然 read( ) 方法也能一次性地把所有数据读取出来,但 readlines( ) 方法返回数据的粒度相对较大,是以行为单位的,而 read( ) 方法返回数据的颗粒度非常小,是以字节为单位的。
In [16]: fhand.seek (0) #文件指针复位到起始点
Out[16]: 0
In [17]: lines = fhand.readlines ()    #读取文件所有行
In [18]: lines[: 2] #返回文件的前两行
Out[18]:
['In this tutorial,  you' ll learn about Python operator precedence and associativity. \n',
'This topic is crucial for programmers to understand the semantics of Python operators.\n']

由于 readlines( ) 方法返回包含所有行的列表,因此我们可以用列表的切片或下标索引访问其中的行。例如 In [18] 处的 lines[:2] 表示的就是返回文件的前两行。

相关文章