'''
在一般情况下,当文件量过大的时候直接使用read等函数来进行操作的
时候就会报错,这里就需要采取一定的策略来避免这样的问题产生
'''
import linecache
def readFuncOne(data='test.txt'):
'''
通过指定单次读取的数据大小长度
'''
myfile=open(data)
while True:
block=myfile.read(3072)
if not block:
break
else:
print block
myfile.close()
def readFuncTwo(data='test.txt'):
'''
设定每次只读取一行
'''
myfile=open(data)
while True:
line=myfile.readline()
if not line:
break
else:
print line
myfile.close()
def readFuncThree(data='test.txt'):
'''
利用可迭代对象file,这样会自动的使用buffered IO以及内存管理
'''
with open(data,'r') as myflie:
for line in myflie:
if not line:
break
else:
print line
def readFuncFour(data='test.txt'):
'''
借助于第三方模块 linecache
'''
#读取全部数据
all_text=linecache.getlines(data)
#读取第二行数据,要注意linecache的读取索引是从1开始的,而不是从0开始的
text=linecache.getline(data, 2)
print 'line 2: ',text
if __name__=='__main__':
readFuncOne(data='test.txt')
readFuncTwo(data='test.txt')
readFuncThree(data='test.txt')
readFuncFour(data='test.txt')