搜索文件功能不起作用

2024-06-01 12:11:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为reddit机器人制作一个程序。该程序的一部分要求我在文件中搜索查询,以防止重复发布。以下是我的代码:

def search (filetosearch,query):
    with open(filetosearch, 'r') as inF:
        for line in inF:
            if len(str(line)) == 0 | query not in line:
                return False
                break
            else:
                return True
                break

无论何时我运行它,它都不会返回任何结果!为什么要跳过返回语句? 我试图搜索的文件是空的


Tags: 文件代码in程序searchreturndefwith
1条回答
网友
1楼 · 发布于 2024-06-01 12:11:56

如果文件是空的,那么您永远不会进入for循环,因为循环没有任何东西可以迭代

只需在该边缘情况的函数末尾添加一个return False

当一行与查询不匹配时,您也不想返回,只需循环到下一行即可:

def search (filetosearch, query):
    with open(filetosearch, 'r') as inF:
        for line in inF:
            if query in line:
                return True

    return False

注意break语句是多余的;当执行return语句时,函数立即退出,永远不会到达带有break语句的下一行

相关问题 更多 >