gpt4 book ai didi

python - 在无法容纳内存的大文件中查找字符串的出现

转载 作者:行者123 更新时间:2023-11-28 20:07:24 29 4
gpt4 key购买 nike

有人要求我计算一个 10GB 大文件和 1GB RAM 中字符串“And”的出现次数。我将如何有效地做到这一点。我回答说我们需要读取每个 100MB 的内存块中的文件,然后找到每个内存块中“And”的总出现次数,并保留字符串“And”的累积计数。面试官对我的回答不满意,他告诉我 grep 命令在 unix 中是如何工作的。写一段类似python的代码,但我不知道答案。非常感谢您回答这个问题。

最佳答案

迭代文件,返回行。在这种情况下很容易,因为搜索字符串不包含行尾字符,因此我们无需担心匹配项会跨行。

with open("file.txt") as fin:
print sum(line.count('And') for line in fin)

在每一行上使用str.count

>>> help(str.count)Help on method_descriptor:count(...)    S.count(sub[, start[, end]]) -> int    Return the number of non-overlapping occurrences of substring sub in    string S[start:end].  Optional arguments start and end are interpreted    as in slice notation.

关于python - 在无法容纳内存的大文件中查找字符串的出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17802016/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com