python使用搜索引擎在文本文件中查找文本

时间:2014-10-08 02:35:59

标签: python search-engine

我在目录中有很多文本文件。然后我会向用户询问一个关键字。如果用户输入例如:'你好'
然后,它必须搜索文本文件中存在的所有目录的整个文本文件,然后搜索并返回文本文件的行,具有高优先级的单词hello。

例如:

input: helloworld

输出:

filename: abcd.txt
line : this world is a good world saying hello

给我一​​些关于如何处理这些问题的想法!

2 个答案:

答案 0 :(得分:3)

使用glob替代,您可以过滤目录中的特定文件名,扩展名或所有文件。

>>> from glob import glob
>>> key = 'hello'
>>> for file in glob("e:\data\*.txt"):
    with open(file,'r') as f:
        line_no = 0
        for lines in f:
            line_no+=1
            if key.lower() in lines.lower():
                print "Found in " + file + "(" + str(line_no) + "): " + lines.rstrip()

Found in e:\data\data1.txt(1): Hello how are you
Found in e:\data\data2.txt(4): Searching for hello
Found in e:\data\data2.txt(6): 3 hello

答案 1 :(得分:1)

import subprocess
output = subprocess.check_output(["/usr/bin/env", "grep", "-nHr", "hello", "."])
matches = (line.split(":", 2) for line in output.split("\n") if line != "")
for [file, line, text] in matches:
    ....

这将在当前目录或下面找到所有提及的“hello”。 man grep了解有关选项的详细信息。请注意,您需要引用任何特殊字符;如果您正在寻找简单的单词,这不是必需的,但如果您正在处理用户输入,则需要关注它。