如果给出文档列表,文档中包含字符串,您如何进行搜索并从文档中搜索并返回包含您要搜索的字符串的文档列表?

对于此问题陈述,我如何在Python或C中实现程序? 我考虑过grep,但我不确定如何实现原生Python / C应用程序内部的工作。

目前的思维过程只是在循环中解析文档,然后解析所有字符串等,但似乎有点低效。

任何帮助赞赏。

你的意思是,相当于grep -le pattern document1 document2 .. documentN?

@NominalAnimal是的,我想是的。 我只使用过一次或两次grep,但我希望用Python或C实现。

C和Python 2和3都支持popen()。 有了它,你可以运行像上面提到的grep这样的shell命令,并在grep生成它们时读取结果,而不使用临时文件或其他类似的混乱。

简单的解决方案正如您所述:循环遍历文件并搜索每个文件。

天真的方法

for file in files:

for line in file:

if line contains pattern:

print file.name

如果你想要更好一点,你可以在找到匹配后立即拯救出文件。

稍微好一些

for file in files:

for line in file:

if line contains pattern:

print file.name

break # found what we were looking for. continue to next file

此时,您可以尝试跨多个线程分发问题。 您可能会受到IO限制,甚至可能会看到性能更差,因为多个线程正在尝试同时读取磁盘的不同部分

线程方法

for file in files:

# create new worker thread which does...

for line in file:

if line contains pattern:

# insert filename into data structure

break # found what we were looking for. continue to next file

# wait for all threads to finish, collect and display data

但是如果你担心性能,你应该使用grep或复制它的工作原理。 它通过将文件读取为原始二进制文件(而不是逐行分解)来节省时间,并使用称为Boyer-Moore算法的字符串搜索算法。 请参阅其他有关grep如何快速运行的信息。

可能你想要什么?途径

grep -l pattern files

您不必逐行读取文件,您可以读取整个文件并使用正则表达式进行搜索。

@wwii读取整个文件的语法是什么? 我只能找到逐行阅读的方法。

@wowdavers with open('file') as f: s = f.read()

python grep 列表_关于python:跨多个文档的字符串搜索 – grep?相关推荐

  1. python子列表_关于python:创建子列表

    本问题已经有最佳答案,请猛点这里访问. 与列表扁平化相反. 给定一个列表和一个长度n返回一个长度n子列表的列表. def sublist(lst, n): sub=[] ; result=[] for ...

  2. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  3. python opencv图像匹配_关于python:OpenCV功能匹配多个图像

    如何使用FLANN优化许多图片的SIFT功能匹配? 我有一个从Python OpenCV文档中获取的工作示例.然而,这是将一个图像与另一个图像进行比较而且速度很慢.我需要它来搜索一系列图像(几千个)中 ...

  4. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  5. python绘制中国_使用python绘制中国地图

    前言 有的时候需要将一些相关的数据放到地图上,可以更加直观的展示,人们也更加容易的阅读理解.比如一些大企业的全国分布,全国各地的温度数据,上映电影的各地票房情况等等.为了实现将数据可视化与地图相结合, ...

  6. python借助jieba包对单独test和txt文档进行中文分词

    python借助jieba包对单独test和txt文档进行中文分词 一.单独test分词 import jieba jieba.cut("大连圣亚在大连") *#输出:<ge ...

  7. python读取docx中表格 图片_python 解析docx文档的方法,以及提取插入的文本对象和图片...

    首先安装docx模块,通过pip install docx或者在docx官方链接上下载安装都可以 下面来看下如何解析docx文档:文档格式如下 有3个部分组成 1 正文:text文档 2 一个表格. ...

  8. Python 将excel中的选择题 导入到word文档中

    Python 将excel中的选择题 导入到word文档中 0x00 昨天,我的老师给我们一个包含600道关于比赛的选择题和判断题的excel文档,要我们整理成指定格式的word文档以后交给他.我看着 ...

  9. 自从学会Python后,无视百度文库VIP,所有文档免费下载阅读

    最近要用到百度文库查资料,但是很多都需要付费VIP或者下载券,还不能复制,就有点苦逼! 还好小编会Python,在Python面前真的所有VIP都是小意思,啥视频网站,资料网站等等,统统无视收费机制! ...

最新文章

  1. java 动态切换_java-动态切换日志级别的3种方案
  2. windows8专业版安装sql2012
  3. 大象公会:如何做万人传播的原创内容?
  4. golang内置数据类型作为函数参数
  5. caffe安装_Ubuntu 16.04 下 Theano 安装,及配置多 GPU使用(Multiple GPUs)
  6. [ASP.NET] 限制上传文件类型的两种方法(转)
  7. 机器学习中的算法-支持向量机(SVM)基础
  8. 【Java】Kryo运行报错:Exception in thread “main“ java.lang.IllegalArgumentException:Class is not registered
  9. 零膨胀负二项回归模型的使用 R语言
  10. 计蒜客-最大子阵列 / NYOJ题目44-子串和
  11. 过滤器Filter总结+案例-实现敏感词汇过滤
  12. 部署3PAR VSP5.0.9.2监控3PAR实时邮件告警状态
  13. 【python教程入门学习】Python转义字符及用法
  14. 开源软件生态:现状与趋势
  15. pytorch参数dim为-1的解释
  16. 语音识别 特征提取(一)
  17. android游戏地图编辑器
  18. 在线将html文件转pdf,在线将html转换成pdf文件 示例源码
  19. c语言百文百鸡问题答案,算法的举例(。。。
  20. AForge学习笔记(10):AForge.Imaging.Filters

热门文章

  1. 我不建议你这样进军人工智能……
  2. 详解预训练模型、图神经网络、模型压缩、知识图谱、信息抽取、序列模型、深度学习、语法分析、文本处理...
  3. 从易到难,针对复杂问题的无监督式问题分解方法
  4. 面试了57位数据分析师,我发现牛逼的人都有这4个特质
  5. 算法分析与设计-实验四 回溯算法设计
  6. 【Java基础】递归输出目录下所有文件路径
  7. mysql InnoDB 聚集索引,二级索引
  8. springboot(2.2.4)的默认日志框架logback换成log4j2
  9. Spark 1.3 新特性 :176个贡献者,1000+ patches
  10. 软件工程概论 课堂练习 第2次作业1【思考:POS系统的对象关联】