2017-07-08 966 views
1

我用下面的代碼來讀取pdf文件,但它沒有讀取它。可能是什麼原因?使用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'']而不是讀取內容。

+0

它適用於0以外的其他頁碼嗎?你確定PDF中有文字,而不僅僅是圖像或圖形嗎? – mkrieger1

回答

0

可能這可以幫助您閱讀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 
-1

你好拉胡爾Pipalia,

如果沒有安裝在你的Python PyPDF2所以先安裝PyPDF2使用後此模塊。

Ubuntu的安裝步驟(安裝python-pypdf)

  1. 首先,打開terminal
  2. 類型後sudo apt-get install python-pypdf

你萬阿英,蔣達清解決方案

試試這個下面的代碼,

# Import Library 
import PyPDF2 

# Which you want to read file so give file name with ".pdf" extension 
pdf_file = open('Your_Pdf_File_Name.pdf') 
read_pdf = PyPDF2.PdfFileReader(pdf_file) 
number_of_pages = read_pdf.getNumPages() 

#Give page number of the pdf file (How many page in pdf file). 
# @param Page_Nuber_of_the_PDF_file: Give page number here i.e 1 
page = read_pdf.getPage(Page_Nuber_of_the_PDF_file) 

page_content = page.extractText() 

# Display content of the pdf 
print page_content 

從下面的鏈接下載PDF文檔,並嘗試這個代碼, https://www.dropbox.com/s/4qad66r2361hvmu/sample.pdf?dl=1

我希望我的回答是很有幫助的。
如果有任何查詢如此評論,請。

+0

你好Rahul Pipalia ... –

+0

如果我的答案有幫助,所以請接受.. –

0

我想你需要指定光盤名稱,它在你的目錄中缺失。例如「D:/Users/Rahul/Desktop/Dfiles/106_2015_34-76357.pdf」。我試過了,我可以沒有任何問題地閱讀。

或者,如果你想找到使用os模塊,你真的不與目錄關聯的文件的路徑,你可以嘗試以下方法:

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) 

查找功能可以在納迪亞Alramli的發現回答這裏Find a file in python

0
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格式的頁面來遍歷頁面並搜索其關鍵術語和流程進一步。