Python中文件对象操作

Python中文件对象操作

Python中的文件对象提供了三种读取方法,即read/readline/readlines。

直接迭代

因文件对象是一个实现了__iter__()next()方法的迭代器,因此我们可以直接使用for循环来遍历文件内容,一次只读取文件内容的一行,并非将整个文件一次性加载到内存当中,代码如下:

1
2
3
file_obj = open('./data.txt')
for line in file_obj:
print line

read函数

read()方法不带参数时,一次将整个文件读取到内存中,返回值是字符串。当read()方法带参数时,一次只会读取参数指定的字节数。举例来说:

1
2
3
4
5
6
7
8
9
10
11
#read不带参数,表示一下读取文件中所有内容,返回字符串
file_obj = open('data1.txt')
out = f.read()
print out

#read(n)带参数,表示一次读取n个字符
file_obj = open('data2.txt')
out_1 = file_obj.read(3) #读取前3个字符
out_2 = file_obj.read(2) #读取紧接着的2个字符
print out_1
print out_2

readline函数

readline()方法一次读取文件对象中的一行内容,返回值是字符串。可以配合for循环使用,每一次循环,读取一行内容。适用于文件比较大,内存比较小,不能一次将整个文件读入内存的情况,使用readline就比较好。

1
2
3
4
5
6
file_obj = open('data.txt')
while True:
line = file_obj.readline()
if not line: break
print line
file_obj.close()

readlines函数

readlines()方法一次将整个文件读取到内存中,返回值是列表list,文件中每一行对应列表list中的一个元素。因返回值是list,可以使用for循环遍历内容啦。

1
2
3
4
file_obj = open('data.txt')
for line in file_obj.readlines():
print line
file_obj.close()