已编写Python程序提取PDF文本,现需对文件夹内每个PDF运行并保存为文本文件

0 投票
3 回答
2363 浏览
提问于 2025-04-15 17:43

到目前为止,我写的代码是这样的(它可以正常工作,并且能够提取文本)。

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")

现在我需要添加一个循环,让它能对/TAM_pdfs文件夹里的所有PDF文件都运行,提取的文本保存为CSV文件,并且(如果可以的话)加上一个统计图片数量的功能。非常感谢任何帮助。谢谢你们的关注。

马特

3 个回答

0

glob模块可以帮助你找到一个文件夹里所有符合特定模式的文件。

4

你可以看看 os.walk() 这个功能。

0

用for循环来处理目录下的所有PDF文件: 可以看看glob模块

把文本保存为CSV格式: 可以看看csv模块

统计图片的数量: 可以看看pyPDF模块 :-)

关于这个说法,有两个补充:

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

(1) 不需要把NBSP(U+00A0)替换成空格,因为在unicode.split()中,NBSP本身就被视为空白字符

(2) 使用strip()是多余的:

>>> u"  foo  bar  ".split()
[u'foo', u'bar']
>>>

撰写回答