
image.png
,想要读取其中的文字信息,但是页数太多信息量较大导致报错“Merroy error”--内存不足,所以没办法一次性读完。这个内存不足的原因是由于python本身的内存机制导致的,所以为了避免这个问题选择对页数较多的pdf进行等量切分为多个pdf,之后再逐个读取。
下面直接上切分代码:
from PyPDF2 import PdfFileWriter, PdfFileReader
# 开始页
start_page = 0
# 截止页
end_page = 200
#用数字作为切分后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总页数
print(pdf_pages_len)
for page in range(0,pdf_pages_len,200): #每200页分成一个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打开后要close文件,不然数量超过一定值会报错”有些文件没有关闭“
fp_read_file.close()
结果如下:

image.png

image.png