在所有Word和PDF文件中搜索字符串的文件夹和子文件夹

时间:2017-07-18 18:10:34

标签: python string pdf ms-word subdirectory

我是python 2.7的新手,我想知道是否有一种方法可以搜索某个文件夹(及其所有子文件夹,PDF和Word文档)中的某个单词。我需要将包含某个关键字的所有PDF和Word文件编译到一个新文件夹中,所以我认为python可能是最好的方法,而不是手动浏览每个文件并搜索单词。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

以下是如何在文件中搜索单词的示例:

files = ["example.txt", "example2.txt", "example3.txt"]
matches = [False, False, False]
for f in range(3):
    fi = open(files[f], 'r')
    for line in fi:
        if "word" in line:
            matches[f] = True
            break
    fi.close()
print matches

这将打开您的文件并检查关键字" word"。对于比较困难的PDF,除非您可以先将它们转换为文本文件。

我强烈建议您查看教程,例如查看目录(文件夹)等。

答案 1 :(得分:0)

def pdf2text(pdf_file):
    return text_of_pdf_file

def word2text(doc_file):
    return text_of_doc_file

def search_word_in_path(root_path,needle):
    for current_dir,dirs,files in os.walk(root_path):
        for fname in files:
           fpath = os.path.join(current_dir,fname)
           if fpath.endswith("pdf"):
              if needle in pdf2text(fpath):
                   yield fpath
           elif fpath.endswith("doc") or fpath.endswith("docx"):
               if needle in word2text(fpath):
                    yield fpath

for filename in search_word_in_path(r"C:\Users\<UserName>\Documents","some word"):
    print("Found 'some word' in %r"%filename)

我猜......我把一些工作留给了你作为解决的OP