好的,我正在尝试编写一个机器人程序,它在定义的文件中搜索定义的字符串,现在它正在工作,但它返回字符串的每个实例,所以如果有人要在文件"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+"```")
我需要更改或添加什么?
发布于 2018-07-12 04:33:23
也许可以添加一个计数器来跟踪您已经找到的数量,如果您找到的数量超过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
https://stackoverflow.com/questions/51293725
复制相似问题