当前位置: 首页 > 面试题库 >

Python:在文件中找到regexp

公西宏峻
2023-03-14
问题内容

有:

f = open(...)  
r = re.compile(...)

需要:
在大文件中找到第一个匹配的正则表达式的位置(开始和结束)?
(从开始current_pos=...

我怎样才能做到这一点?

我想要这个功能:

def find_first_regex_in_file(f, regexp, start_pos=0):  
   f.seek(start_pos)

   .... (searching f for regexp starting from start_pos) HOW?

   return [match_start, match_end]

文件“ f”应该很大。


问题答案:

搜索大文件的一种方法是使用mmap库将文件映射到大内存块中。然后,您可以搜索它,而不必显式阅读它。

例如,类似:

size = os.stat(fn).st_size
f = open(fn)
data = mmap.mmap(f.fileno(), size, access=mmap.ACCESS_READ)

m = re.search(r"867-?5309", data)

这对于非常大的文件非常有效(我已经为30+ GB的文件完成了此操作,但是如果您的文件超过一两个GB,则需要64位操作系统)。



 类似资料:
  • 问题内容: 假设您要将一堆文件保存在某个地方,例如在BLOB中。假设您想通过网页分发这些文件,并让客户端自动打开正确的应用程序/查看器。 假设:浏览器通过HTTP响应中的mime-type(content-type?)标头找出要使用的应用程序/查看器。 基于此假设,除了文件的字节外,您还希望保存MIME类型。 您将如何找到文件的MIME类型?我目前在Mac上,但是在Windows上也应该可以使用。

  • 问题内容: 我的python以某种方式无法在同一目录中找到任何模块。我究竟做错了什么?(python2.7) 所以我有一个目录“ 2014_07_13_test”,其中有两个文件: test.py 你好 在hello.py: 和test.py: 还是python给我 怎么了? 问题答案: 您的代码很好,我怀疑您的问题是如何启动它。 您需要从“ 2014_07_13_test”目录启动python。

  • 我还没有看到与此相关的问题,尽管我做了几次相反的努力,但它还是出现了,所以我希望有人能帮我理解发生了什么。 我是Python的Gekko包的新手,我试图运行一个非线性求解器来解决正在发生的事情。我得到了一个奇怪的错误消息(),似乎是编程/语法而不是数学。这是一个更大的函数/数据/输入中的一个函数,所以我很难提供足够的信息来帮助您复制它-但是- y(即self.get_days_energy(日期=

  • 我在WSL中使用Ubuntu环境中的python编写了一个脚本。 我在Windows中下载了Firebase的私钥“ServiceAccountKey.json”,然后将其移动到我在WSL中的工作目录中。(使用'mv mnt/c/users/yiu/downloads/serviceaccountkey.json~/projects/scrape')。现在,我正试图将该文件传递给Certifica

  • 问题内容: 在IntelliJ中,当我尝试编译时出现此奇怪的错误。 我知道,问题出在哪里很明显,但是花了太多时间在这个问题上,我现在把信任交给您! 我使用ideaCommunity-9,在其中为JBoss创建了一个全局库,其中包含所有JBoss jar,包括ejb3-persistence.jar。我的模块包含此库,并且已将其移至依赖关系的顶部。在类路径中,没有其他地方有javax.persist

  • 在此处输入代码我正在对一个电影页面进行web抓取,但它找不到跨度,尽管在xpath中它可以识别它,它找不到文本,当我打印它时,它打印为空。 这是在此处输入图像描述的代码 找到物品的证据请在此处输入图像描述 网址 https://www.cinecolombia.com/cali/peliculas/el-olvido-que-seremosxpath //section@class=“可折叠的显示