已编写Python程序提取PDF文本,现需对文件夹内每个PDF运行并保存为文本文件
到目前为止,我写的代码是这样的(它可以正常工作,并且能够提取文本)。
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']
>>>