您的位置:首页 > 编程语言 > Python开发

python文件随机读写例子

2015-07-09 00:00 260 查看
__author__ = 'Administrator'
# -*- coding: utf-8 -*-
'''
声明一个类,该类的参数是一个字符串
传一个文件和一个结果文件,如果该文件中包含有指定的字符串,将该行信息输出至结果文件中

'''

class FileUtil:
def __init__(self,filename):
self.filename = filename

def createindexfile(self,stringdata):
fwrite = open(self.filename,'a')
fl2 =open("d:/bak/bak/test.index",'a+b')
#读取到文件的最后一个位置,往前读8位,前4位为索引,后四位为数据的长度
i = 1
if fl2.tell() >=8:
fl2.seek(-8,2)
if fl2.readable():
bindex = fl2.read(8)

if bindex is None:
print (bindex +" is none")
else:
i = int(bindex[0:4])+1

indexcontent = str.format("%04d%04d"%(i,len(stringdata)))
fl2.write(indexcontent.encode("UTF-8") )
fwrite.write(stringdata)
fwrite.close()
fl2.close()

def getmsgbyIndex(self,index):
print(index)
#打开索引文件读取
fread = open(self.filename,'r')
#打开数据文件读取
findexread =open("d:/bak/bak/test.index",'r')
#按索引标志读取到对应的地址,每读一次,动态增加一个数据
istart =0
for i in range(1,index):
strindex = findexread.read(8)
istart += int(strindex[4:])
#最终读取数据返回
strindex = findexread.read(8)
fread.seek(istart)

k = int(strindex[4:])
content =fread.read(k)
print(content+"===")
return content

if __name__ == '__main__':
fl = FileUtil("d:/bak/bak/test.aa")
fl.createindexfile("123456")
fl.createindexfile("456789100320103")
for i in range(1,8):

7fe0
fl.getmsgbyIndex(i)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: