繁体   English   中英

如何通过文本文件进行 Python 搜索并打印每个匹配的行?

[英]How to make Python search through a text file and print every matching line?

对总菜鸟问题表示歉意。 我正在努力学习 Python。 我已经搜索了这个网站,但没有找到适合我的解决方案。 请让我知道是否已经解释过。

我正在尝试为.txt文件中的电影标题列表制作一个搜索程序,我希望它打印包含用户输入的单词的每一行。

例如,如果文本文件中的两行是

22. It Happened One Night (1934)
23. Wonder Woman (2017)

并且用户输入“on”我希望这两个(和任何其他人)都出现,因为它们在某些时候都包含“on”。

我试过使用

with open("movies.txt", "r") as f:
     searchlines = f.readlines()
for i, line in enumerate(searchlines):
    if searchphrase in line: 
        for l in searchlines[i:i+3]: print(l),
        print

但这对我不起作用。

可能是这样的:

with open("movies.txt", "r") as file:
    lines = file.read().splitlines()

keyword = "on"

filtered_lines = filter(lambda line: keyword.casefold() in line.casefold(), lines)

for line in filtered_lines:
    print(line)

您可以参考下面的代码片段

def search(text_search):
    with open("movies.txt", "r") as f:
        searchlines = f.readlines()
        for i, line in enumerate(searchlines):
            # if line contains text_search we will print it
            if text_search in line:
                print(line)
if __name__ == "__main__":
    search("One")
def search(text_search):
    with open("movies.txt", "r") as f:
        searchlines = f.readlines()
        for i, line in enumerate(searchlines):
            if text_search.casefold() in line.casefold():
                print(line)

示例调用您的函数: search("ON")

编辑缩进

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM