使用python逐行读取pdf文件

2024-10-06 09:07:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用了下面的代码来读取pdf文件,但它没有读取它。可能是什么原因?

>>> import os 

>>> from PyPDF2 import PdfFileReader, PdfFileWriter

>>> path = "/Users/Rahul/Desktop/Dfiles/"

>>> dirs = os.listdir( path )

>>> directory = "/Users/Rahul/Desktop/Dfiles/106_2015_34-76357.pdf"

>>> f = open(directory, 'rb')

>>> reader = PdfFileReader(f)

>>> contents = reader.getPage(0).extractText().split('\n')

>>> f.close()

>>> print contents

输出为[u'],而不是读取内容。


Tags: 文件path代码importpdfoscontents原因
3条回答
import re
import PyPDF2

pdfFileObj = open('E://drive-download-20171015T225604Z-001/test_case/test2/try/xyz.pdf', 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
print("Number of pages:-"+str(pdfReader.numPages))
num = pdfReader.numPages
i =0
while(i<num):
    pageObj = pdfReader.getPage(i)
    text=pageObj.extractText()
    text1 = text.lower()
    for line in text1:
        if(re.search("abc",line)):
            print(line)
    i= i+1

我使用它来逐页迭代pdf,并在其中搜索关键术语并进一步处理。

我想你需要指定磁盘名,它在你的目录中丢失了。例如“D:/Users/Rahul/Desktop/Dfiles/106_2015_34-76357.pdf”。我试过了,我可以毫无问题地阅读。

或者,如果要使用与目录没有真正关联的操作系统模块查找文件路径,可以尝试以下操作:

from PyPDF2 import PdfFileReader
import os

def find(name, path):
    for root, dirs, files in os.walk(path):
        if name in files:
            return os.path.join(root, name)

directory = find('106_2015_34-76357.pdf', 'D:/Users/Rahul/Desktop/Dfiles/')

f = open(directory, 'rb')

reader = PdfFileReader(f)

contents = reader.getPage(0).extractText().split('\n')

f.close()

print(contents)

在Nadia Alramli的答案中可以找到find函数Find a file in python

也许这可以帮助你阅读PDF。

import pyPdf
def getPDFContent(path):
    content = ""
    pages = 10
    p = file(path, "rb")
    pdf_content = pyPdf.PdfFileReader(p)
    for i in range(0, pages):
        content += pdf_content.getPage(i).extractText() + "\n"
    content = " ".join(content.replace(u"\xa0", " ").strip().split())
    return content

相关问题 更多 >