Выведите количество раз, сколько слово находится в PDF - Python - PullRequest
0 голосов
/ 01 марта 2019

У меня проблема при использовании pypdf при поиске количества раз, когда определенное слово находится в файле PDF.

В моем коде оно находит количество раз, которое слово содержит, но только один разстраница.Таким образом, максимальное количество страниц.Слово «the» должно давать около 700, но показывает только 30 (количество страниц - 30).

import PyPDF3
import re
def read_pdf(file,string):
    fils = file.split(".")
    print(fils[1])
    word = string
    if fils[1] == "pdf":
        pdfFileObj = open(file,"rb")
    # open the pdf file
        object = PyPDF3.PdfFileReader(file)
    # get number of pages
        NumPages = object.getNumPages()

    # define keyterms
        counter = 0
    # extract text and do the search
        for i in range(NumPages):
            PageObj = object.getPage(i)
            print("page " + str(i))
            Text = PageObj.extractText()
            #print(Text)
            if word in Text:
                print("The word is on this page")
                counter += 1
        print(word, "exists", counter, "times in the file")

Ребята, можете ли вы увидеть, что я сделал неправильно, и помочь мне с этим?

Спасибо:)

1 Ответ

0 голосов
/ 01 марта 2019

Что вам нужно сделать, это собрать ВСЕ слова со ВСЕХ страниц в список.
Когда у вас есть список слов, вы можете использовать Счетчик, который даст вам слова и их количество в pdf

Пример:

from collections import Counter

pdf_words = ['the','fox','the','jack']

counter = Counter(pdf_words)
print(counter)

Вывод:

Counter({'the': 2, 'fox': 1, 'jack': 1})
...