image.png
包雀,想要讀取其中的文字信息,但是頁(yè)數(shù)太多信息量較大導(dǎo)致報(bào)錯(cuò)“Merroy error”--內(nèi)存不足孩饼,所以沒(méi)辦法一次性讀完髓削。這個(gè)內(nèi)存不足的原因是由于python本身的內(nèi)存機(jī)制導(dǎo)致的,所以為了避免這個(gè)問(wèn)題選擇對(duì)頁(yè)數(shù)較多的pdf進(jìn)行等量切分為多個(gè)pdf捣辆,之后再逐個(gè)讀取蔬螟。
下面直接上切分代碼:
from PyPDF2 import PdfFileWriter, PdfFileReader
# 開(kāi)始頁(yè)
start_page = 0
# 截止頁(yè)
end_page = 200
#用數(shù)字作為切分后pdf的名字
page_no_split = 1
# h_pathfile_pdf_y----需切分文件路徑
fp_read_file = open(h_pathfile_pdf_y, "rb")
pdf_file = PdfFileReader(fp_read_file )
pdf_pages_len = pdf_file.getNumPages() #獲取pdf總頁(yè)數(shù)
print(pdf_pages_len)
for page in range(0,pdf_pages_len,200): #每200頁(yè)分成一個(gè)pdf
output = PdfFileWriter()
for i in range(start_page, end_page):
output.addPage(pdf_file.getPage(i))
start_page+=200
end_page+=200
if pdf_pages_len<end_page:
end_page=pdf_pages_len
outputStream = open(recepit_split + "\\" + str(page_no_split) + ".pdf", "wb") #recepit_split----切分后的文件存放路徑
output.write(outputStream)
page_no_split+=1
outputStream.close() #記得open打開(kāi)后要close文件,不然數(shù)量超過(guò)一定值會(huì)報(bào)錯(cuò)”有些文件沒(méi)有關(guān)閉“
fp_read_file.close()
結(jié)果如下:
image.png
image.png