好吧,所以我正在尝试为Discord编写一个机器人,该机器人可以在已定义的文件中搜索已定义的字符串,现在它可以正常工作,但是会返回字符串的每个实例,就像有人在文件中查找一样“ b”会从字面上打印出包含该字母的每一行,直到结尾为止。在僵尸程序的情况下,由于过度使用内存和CPU,会导致拒绝服务。
我想要它做的只是从文件中返回第一个类似10或20个结果,然后停止搜索。它被编码为discord.py
代码如下:
@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+"```")
我需要更改或添加什么?
答案 0 :(得分:1)
也许添加一个计数器来跟踪已经找到的数量,如果发现的数量超过20,则停止。例如:
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