gpt4 book ai didi

python - 如何提高 Python 中查找最常见字符串的性能?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:29:53 27 4
gpt4 key购买 nike

我有大约 30 个文件,每个文件的大小约为 300MB。每个文件中都有一些我感兴趣的信息,例如用户名。现在我想使用正则表达式查找用户名,然后找到最常见的用户名。这是我的代码:

rList=[]
for files in os.listdir("."):
with open(files,'r') as f:
for line in f:
m=re.search('PATTERN TO FIND USERNAME',line)
if m:
rList.append(m.group())
c=Counter(rList)
print c.most_common(10)

现在如您所见,我将找到的每个用户名添加到列表中,然后调用 Counter()。这样大约需要几分钟才能完成。我尝试删除 c=Counter(rList) 并在每次读完文件时调用 c.update() ,但这不会有任何区别,会吗?

那么,这是最佳做法吗?有什么方法可以提高性能吗?谢谢!

最佳答案

分析将向您表明,逐行遍历文件的每一行会产生大量开销。如果文件总是在您指定的大小左右并且您可以使用内存,则通过一次调用 .read() 将它们放入内存,然后使用更复杂的预编译正则表达式(即考虑换行符)一次提取所有用户名。然后 .update() 您的反对象与匹配的正则表达式中的组。这将尽可能高效。

关于python - 如何提高 Python 中查找最常见字符串的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18685162/

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