Написали программу для извлечения текста из PDF в python, и теперь нужно, чтобы она запускалась для каждого PDF в папке и сохранялась как текстовый файл. - PullRequest
0 голосов
/ 07 января 2010

Пока что у меня есть код (он работает и извлекает текст так, как должен.)

import pyPdf

def getPDFContent(path):
    content = ""
    # Load PDF into pyPDF
    pdf = pyPdf.PdfFileReader(file(path, "rb"))
    # Iterate pages
    for i in range(0, pdf.getNumPages()):
        # Extract text from page and add to content
        content += pdf.getPage(i).extractText() + "\n"
    # Collapse whitespace
    content = " ".join(content.replace(u"\xa0", " ").strip().split())
    return content

print getPDFContent("/home/nick/TAM_work/TAM_pdfs/2006-1.pdf").encode("ascii", "ignore")

Теперь мне нужно добавить цикл for, чтобы он работал на всех PDF-файлах в / TAM_pdfs, сохранить текст как CSV и (если возможно) добавить что-то для подсчета изображений. Любая помощь будет принята с благодарностью. Спасибо за поиск.

Мэтт

Ответы [ 3 ]

4 голосов
/ 07 января 2010

Взгляните на os.walk()

0 голосов
/ 07 января 2010

для цикла, чтобы он работал на всех PDF-файлах в каталоге : посмотрите на глобальный модуль

сохраните текст как CSV : посмотрите намодуль csv

количество фотографий : посмотрите на модуль pyPDF: -)

Два комментария к этому утверждению:

content = " ".join(content.replace(u"\xa0", " ").strip().split())

(1)Нет необходимости заменять NBSP (U + 00A0) пробелом, потому что NBSP (естественно) считается пробелом unicode.split()

(2) Использование strip () избыточно:

>>> u"  foo  bar  ".split()
[u'foo', u'bar']
>>>
0 голосов
/ 07 января 2010

Модуль glob может помочь вам найти все файлы в одном каталоге, которые соответствуют шаблону с подстановочными знаками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...