当前位置: 首页 > wzjs >正文

网站建设怎么用在线资源搜索引擎

网站建设怎么用,在线资源搜索引擎,网站建设 网站,安卓app公司开发任务 需要创建一个输入文件对象(数据可能来自于网络socket 或者其他输入文件句柄),此文件对象允许回退到起点,这样就可以完全读取其中所有数据。 解决方案 将文件对象封装到一个合适的类中: 将文件对象封装到一个合适的类中: from cStringIO import …

任务

需要创建一个输入文件对象(数据可能来自于网络socket 或者其他输入文件句柄),此文件对象允许回退到起点,这样就可以完全读取其中所有数据。

解决方案

将文件对象封装到一个合适的类中:

将文件对象封装到一个合适的类中:
from cStringIO import StringIO
class RewindableFile(obiect):
'''封装一个文件句柄以便重定位到开始位置'''def __init__(self,input_file):#将input_file 封装到一个支持回退的类文件对象中#self.file = input_fileself.buffer_file = StringIO()self.at_start = Truetry :self.start = input_file.tell()except(IOError,AttributeError):self.start = 0self,use_buffer = True
def seek(self,offset,whence = 0):
'''根据给定的字节定位。
必须:whence == 0 and offset == self.start 
'''if whence != 0:raise ValueError("whence = %r;expecting 0" %(whence,))if offset != 0raise ValueError("offset = %r;expecting %s" %(offset,self.start))self.rewind()
def rewind(self):'''回到起始位置'''self.buffer_file.seek(0)self.at_start = True
def tell(self):'''返回文件的当前位置(必须在开始处)'''if not self.at_start:raise TypeError("RewindableFile can't tell except at start of file")return self.start
def _read(self,size):if size < 0:#一直读到文件末尾y = self.file.read()if self._use_buffer:self.buffer_file.write(y)return self.buffer_file.read() + yelif size == 0:#不必读空字符串return "x= self.buffer_file.read(size)if len(x) < size:y = self.file.read(size - len(x))if self._use_buffer:self.buffer_file.write(y)return x + yreturn x
def read(self,size = -1):
'''根据size指定的大小读取数据
默认为-1,意味着一直读到文件结束
'''x = self.read(size)if self.at_start and x:self.at_start = Falseself._check_no__buffer()return x
def readline(self):
'''从文件中读取一行'''
# buffer_file中有吗?s =self.buffer_file.readline()if s[-1:] == "\n":return s#没有,从输入文件中读取一行t = self.file.readline()if self._use_buffer:self.buffer_file.write(t)self._check_no_buffer()return s + t
def readlines(self):
'''读取文件中所有剩余的行'''return self.read().splitlines(True)
def _check_no_buffer(self):
#如果"nobuffer"被调用,而且我们也完成了对缓存文件的处理
#那就删掉缓存,把所有的东西都重定向到原来的输入文件if not self._use_buffer and self.buffer_file.tell() == len(self.buffer_file.getvalue()):
#为了获得尽可能高的性能,我们重新绑定了self中的所有相关方法for n in'seek tell read readline readlines',split():setattr(self,n,getattr(self.file,n,None))del self.buffer_file
def nobuffer(self):
'''通知 Rewindablerile,一旦缓存耗尽就停止继续使用缓存'''self._use_buffer = False

讨论

太长了,此处省略。

http://www.dtcms.com/wzjs/513936.html

相关文章:

  • 新闻网站备案的前置条件女生学电子商务好吗
  • 手机网站 英文搜索引擎的优化方法有哪些
  • 兄弟网络(西安网站建设制作公司)爱站网长尾关键词挖掘工具
  • wordpress建站购买营销策划的六个步骤
  • 武汉站哪家设计公司什么是网络推广
  • 建视频网站我想做网络推广找谁
  • 平度网站建设公司做销售找客户渠道
  • 如何使用家里电脑做网站服务器销售网站
  • 公司做网站费用记到哪个科目购物网站制作
  • ui培训班多少钱公众号排名优化
  • 电商网站开发总结与感受软文代写服务
  • 做视频网站需要什么空间吗网络广告有哪些形式
  • 广州开发区人才交流服务中心刷关键词优化排名
  • 可以用腾讯企业邮箱域名做网站百度seo优化工具
  • 重庆网站备案大厅搜狗网页版入口
  • 电子网站搜索引擎怎么做关键词优化排名哪家好
  • 做html网站模板下载地址网站推广公司
  • 网站建设的技术难点西安网站建设方案优化
  • wordpress网站迁移教程北京搜索引擎推广服务
  • 网站建设的价值是什么seo优化的主要内容
  • 代理注册公司收费标准淘宝关键词优化怎么弄
  • 餐饮网站建设需求分析免费软文发布平台有哪些
  • 做lgoo的网站一般有哪些各大引擎搜索入口
  • 香港做批发的网站肇庆seo外包公司
  • 网站建设外包包含内容十大免费网站推广平台有哪些
  • 网站建设中如何使用字体杭州百度推广
  • 中国国际贸易单一窗口网站佛山做网站推广的公司
  • 黄骅住房和城乡建设局网站百度怎么做网站
  • 为什么不能用来名字做网站名厦门网站优化公司
  • 网站主体信息南昌seo代理商