在python中查看关键字、需要执行,如何在一个文本文件,二进制执行搜索来搜索一个Python关键字?...
The text file contains two columns- index number(5 spaces) and characters(30 spaces).
It is arranged in lexicographic order. I want to perform binary search to search for the keyword.
解决方案
Here's an interesting way to do it with Python's built-in bisect module.
import bisect
import os
class Query(object):
def __init__(self, query, index=5):
self.query = query
self.index = index
def __lt__(self, comparable):
return self.query < comparable[self.index:]
class FileSearcher(object):
def __init__(self, file_pointer, record_size=35):
self.file_pointer = file_pointer
self.file_pointer.seek(0, os.SEEK_END)
self.record_size = record_size + len(os.linesep)
self.num_bytes = self.file_pointer.tell()
self.file_size = (self.num_bytes // self.record_size)
def __len__(self):
return self.file_size
def __getitem__(self, item):
self.file_pointer.seek(item * self.record_size)
return self.file_pointer.read(self.record_size)
if __name__ == '__main__':
with open('data.dat') as file_to_search:
query = raw_input('Query: ')
wrapped_query = Query(query)
searchable_file = FileSearcher(file_to_search)
print "Located @ line: ", bisect.bisect(searchable_file, wrapped_query)
在python中查看关键字、需要执行,如何在一个文本文件,二进制执行搜索来搜索一个Python关键字?...相关推荐
- python中查看表头的函数_Python中也可以写Excel中的“Vlookup”函数?太牛逼了吧!...
原标题:Python中也可以写Excel中的"Vlookup"函数?太牛逼了吧! Vlookup函数,可以算是一个数据专员必须要会使用的基本函数了,确实很好用.但是你可能会注意到, ...
- python中查看关键字需要在python解释器中执行_Day09-python基础之Cpython解释器支持的进程与线程...
一.进程与线程理论基础 1.背景知识 进程的概念起源于操作系统,是操作系统最核心的概念. 进程是对正在运行程序的一个抽象,操作系统的其他所有内容都是围绕进程的概念展开的.所以想要真正了解进程,必须事先 ...
- 在python中查看关键字需要在python解释器中执行_现有代码 d={},在Python3解释器中执行 d[([1,2])] = 'b'得到的结果为( )。...
[单选题]下列字符中对应ASCII码数值最小的是哪个选项?( ) [单选题]Python解释器执行'{0},{2},{1}'.format('a','b','c')的结果为( ). [单选题]Pyth ...
- 在python中查看关键字、需要执行_python关键字以及含义,用法
Python常用的关键字 1.and , or and , or 为逻辑关系用语,Python具有短路逻辑,False and 返回 False 不执行后面的语句, True or 直接返回True, ...
- python中查看关键字需要在python解释器中执行_python从零开始--(02)--基础篇
继续我们的学习 今天我们需要学的内容是: 1.input,print (输入,输出). 2.变量. 3.python中的数学运算符. (另外,我们需要在这个过程中学会python解释器使用) 打开解 ...
- python中for循环和while循环else语句的执行过程和陷阱
文章目录 什么时候执行else,什么时候不执行else语句 for...else...正确代码示例和说明 for循环搭配else常见错误和陷阱 在Python中,有while和for两种循环,并且都可 ...
- python中字典不自动排序/删除指定类型文件/执行可执行文件的返回值
1.python 字典的用法 from collections import OrderedDict dict =OrderedDict() dict['foo']=3 dcit['aol']=1 2 ...
- python中elif老是出错_python为什么会存在if执行了依然会执行elif的情况?
如题,是在一个案例的for循环中,if执行了,按理elif不应该执行,但是结果依然执行了elif,不太理解,是忽略了什么吗 for msg in track: print '------------- ...
- python中home定义是什么_第48p,什么是函数?,Python中函数的定义
原标题:第48p,什么是函数?,Python中函数的定义 大家好,我是 杨数 Tos ,这是<从 零 基础到大神>系列课程的第 48 篇文章 ,第三阶段的课程 : Python进阶知识:详 ...
- python中什么是字符举例说明_第20p,什么是字符串?Python中的str
原标题:第20p,什么是字符串?Python中的str 大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第20篇文章,第二阶段的课程:Python基础知识:Python的字符串(上 ...
最新文章
- 3 命名空间与命名规范
- java 安装后找不到文件_(已解决)jdk安装 系统找不到文件C:\ProgramData\Oracle\Java\javapath\java.exe...
- python事件循环_简单了解一下事件循环(Event Loop)
- 奖品兑现 – 我家没有好茶饭,只有《编程之美》送亲人
- 华为鸿蒙游戏引擎,打破技术封锁!鸿蒙OS后,国产顶级游戏引擎也已问世!
- c++ string类 知识点整理
- 面试之js 数组插入删除
- mysql密码认证插件_关于mysql:无法加载身份验证插件’caching_sha2_password’
- Kubernetes--k8s---存活探针和就绪探针的最佳实践
- 用python绘制玫瑰花的代码_Python 玫瑰花绘制
- SEO商务谈判技巧,常见的5个措施有哪些?
- socket连接超时问题
- win10共享打印机搜索不到计算机,win10为什么搜索不到共享打印机
- 凸优化 matlab-cvx-第十一章ADVANCED TOPICS
- faceu激萌相机里面vue_激萌相机怎么玩?激萌相机faceu使用教程[多图]
- 地理国情普查外业调绘轨迹线的整理方法
- 现在做什么副业比较赚钱?多说人都选择这4个副业!
- MyEclipse版本下载
- 五种常见的DNS攻击类型及应对方式
- 深圳市及各区贷款补贴
热门文章
- Kubernetes 常见问题总结
- chmod 用法示例
- Nginx 负载均衡和缓存服务实战
- 【Hive】解析字符串(类似array嵌套map结构)
- 【SQL】正则表达式-校验数字,字符,特殊需求等
- eclipse 调试nodejs 发生Failed to connect to standalone V8 VM错误的解决方案
- HttpClient FormUrlEncodedContent System.UriFormatException: 无效的 URI: URI 字符串太长问题解决方案
- H5 播放视频常见bug及解决方案
- R(1):中文乱码解决方案
- 有未经处理的异常(在 xx.exe 中): 堆栈 Cookie 检测代码检测到基于堆栈的缓冲区溢出。