首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python中搜索文件并仅返回前x个结果

在Python中搜索文件并仅返回前x个结果
EN

Stack Overflow用户
提问于 2018-07-12 04:27:51
回答 1查看 33关注 0票数 0

好的,我正在尝试编写一个机器人程序,它在定义的文件中搜索定义的字符串,现在它正在工作,但它返回字符串的每个实例,所以如果有人要在文件"b“中查找,它会打印包含该字母的每一行,直到最后,在机器人的情况下,这会导致拒绝服务,因为过度使用内存和CPU。

我希望它只返回文件中的前10或20个结果,然后停止搜索。它是为discord.py编写的

代码如下:

代码语言:javascript
复制
@client.command()
async def search(arg1, arg2):
    await client.say("Searching for "+arg1+" in "+arg2+"...")
    with open("DIRECTORY/"+arg2, 'r') as inF:
        for line in inF:
            if arg1 in line:
                await client.say("```"+line+"```")

我需要更改或添加什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-12 04:33:23

也许可以添加一个计数器来跟踪您已经找到的数量,如果您找到的数量超过20个,则停止。例如:

代码语言:javascript
复制
    with open("DIRECTORY/"+arg2, 'r') as inF:
    numFound = 0
    for line in inF:

        if arg1 in line:

            await client.say("```"+line+"```")
            numFound += 1
            if numFound == 20:
                break
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51293725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档