PyPDF2读取PDF文件内容如何保存到本地三种

  介绍

这篇文章主要为大家展示了PyPDF2读取PDF文件内容如何保存到本地TXT,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。

我就废话不多说了,大家还是直接看代码吧!

。pdf进口PdfFileReader
  熊猫作为pd导入
  
  def Pdf_to_txt (pdf):
  
  因为我在范围(0,pdf.getNumPages ()):
  title=[]
  lin1,林、lin3 lin4、lin5 lin6, lin7, lin8=[] [], [], [], [], [], [], []
  extractedText=pdf.getPage(我).extractText ()
  文本=extractedText.split (& # 39; \ n # 39;)
  num=0
  林的文本:
  如果num==0:
  title.append(林)
  elif num==1:
  lin1.append(林)
  elif num==2:
  lin2.append(林)
  elif num==3:
  lin3.append(林)
  elif num==4:
  lin4.append(林)
  elif num==5:
  lin5.append(林)
  elif num==6:
  lin6.append(林)
  elif num==7:
  lin7.append(林)
  elif num==8:
  lin8.append(林)
  num=0
  num +=1
  Lin_num=len (lin8)
  data=https://www.yisu.com/zixun/{Lin1: Lin1 [: Lin_num],“林”:[:Lin_num],“Lin3”: Lin3 [: Lin_num],“Lin4”: Lin4 [: Lin_num],“Lin5”: Lin5 [: Lin_num],“Lin6”: Lin6 [: Lin_num],“Lin7”: Lin7 [: Lin_num],“Lin8”: Lin8 [: Lin_num]}
  df=pd。DataFrame(数据,列=[‘Lin1’,‘林’,‘Lin3’,‘Lin4’,‘Lin5’,‘Lin6’,‘Lin7’, ' Lin8 '])
  file_name=标题[0]+“_page”+ str ((i + 1))
  df.to_csv(“工具/pdf解析/% s。txt ' % file_name,指数=False, 9='/t ')
  
  
  if __name__==癬_main__”:
  文件名=' E:/SVN/采集框架V2/analyse_code/政策/pdf/con026465.pdf”
  pdf=PdfFileReader (open (filename, rb))
  Pdf_to_txt (pdf) 

<强>使用PyPDF2库对pdf文件进行指定页面删除操作

平台:win10家庭版,python 3.7, PyPDF2

思维过程:

<强>方法一:将pdf文件通过拆分为单页,放入一个文件夹,再删除其中不要的文件,最后再把剩余的文件进行合并为一个pdf文件

第一步:使用原文件路径创建新文件夹,用于存放拆分后的单页文件

 def newdir(自我、路径):
  自我。新=os.path.splitext(路径)[0]
  如果不是os.path.isdir (self.new): #使用os.path.isdir判断文件夹是否存在,
  os.mkdir (self.new) 

第二步:生成单页文件,并存放到新建的文件夹

 def pdfsplt(自我、路径):
  如果os.path.isfile(路径):
  file_1=开放(路径,“rb")
  file_reader=PyPDF2。PdfFileReader (file_1,严格=False) #使用严格关闭错误提示
  #使用的循环读取每一页并将其写入新pdf文件,文件以页码命名
  页面的范围(0,file_reader.getNumPages ()):
  file_write=PyPDF2.PdfFileWriter ()
  pageobj=file_reader.getPage(页面)
  file_write.addPage (pageobj)
  输出=str (self.new) +“\ \”;+ str (int(+ 1)页)+“.pdf"
  张开(输出,“wb") output_pdf:
  file_write.write (output_pdf)
  file_1.close ()
  其他:
  print(“文件不存在!“)
  time . sleep (3)
  退出()

第三步:删除文件夹中不要的文件

 def pdfremove(自我、数量):
  pag的号码:
  文件名=str (self.new) +“\ \”;+ str (pag) +“.pdf"
  如果os.path.isfile(文件名):
  os.unlink(文件名)
  其他:
  print(“请确认要删除的页码% s是否正确! !“% pag) 

第四步:把剩余文件合并为一个pdf文件

 def pdfmerge(自我):
  file_list=[int (os.path.splitext (x)[0])的x os.listdir (self.new)] #读取新建文件夹下的所有文件并提取文件名转为数字
  file_write=PyPDF2.PdfFileWriter() #先创建一个新的pdf对象
  页面的排序(file_list):
  pathstr=str (self.new) +“\ \”;+ str(页面)+“.pdf"
  file_1=开放(pathstr“rb")
  file_reader=PyPDF2。PdfFileReader (file_1,严格=False) #使用严格关闭错误提示
  pageobj=file_reader.getPage (0)
  file_write.addPage (pageobj)
  输出=str (self.new) +“_new.pdf"
  张开(输出,“wb") output_pdf:
  file_write.write (output_pdf)
  print(“第% s页完成“%页)
  file_1.close () 

第五步:删除其中的缓存文件夹

 def删除文件夹(自我):
  如果os.path.isdir (self.new):
  shutil.rmtree (self.new) 

方法一的完整代码:

进口PyPDF2
  进口操作系统,时间、shutil sys
  进口线程
  
  类mypdf(对象):
  def __init__(自我、路径、数量):
  self.newdir(路径)
  self.pdfsplt(路径)
  self.pdfremove(数量)
  self.pdfmerge ()
  self.rmdir ()
  通过
  
  #用于创建一个独立的文件夹,存放缓存数据
  def newdir(自我、路径):
  自我。新=os.path.splitext(路径)[0]
  如果不是os.path.isdir (self.new): #使用os.path.isdir判断文件夹是否存在,
  os.mkdir (self.new)
  
  #将每一页生成独立文件,存放到缓存文件夹
  def pdfsplt(自我、路径):
  如果os.path.isfile(路径):
  file_1=开放(路径,“rb")
  file_reader=PyPDF2。PdfFileReader (file_1,严格=False) #使用严格关闭错误提示
  #使用的循环读取每一页并将其写入新pdf文件,文件以页码命名
  页面的范围(0,file_reader.getNumPages ()):
  file_write=PyPDF2.PdfFileWriter ()
  pageobj=file_reader.getPage(页面)
  file_write.addPage (pageobj)
  输出=str (self.new) +“\ \”;+ str (int(+ 1)页)+“.pdf"
  张开(输出,“wb") output_pdf:
  file_write.write (output_pdf)
  file_1.close ()
  其他:
  print(“文件不存在!“)
  time . sleep (3)
  退出()
  
  #删除缓存文件夹中的不要的页
  def pdfremove(自我、数量):
  pag的号码:
  文件名=str (self.new) +“\ \”;+ str (pag) +“.pdf"
  如果os.path.isfile(文件名):
  os.unlink(文件名)
  其他:
  print(“请确认要删除的页码% s是否正确! !“% pag)
  
  #将缓存文件夹中的剩余文件合进行合并
  def pdfmerge(自我):
  file_list=[int (os.path.splitext (x)[0])的x os.listdir (self.new)] #读取新建文件夹下的所有文件并提取文件名转为数字
  file_write=PyPDF2.PdfFileWriter() #先创建一个新的pdf对象
  页面的排序(file_list):
  pathstr=str (self.new) +“\ \”;+ str(页面)+“.pdf"
  file_1=开放(pathstr“rb")
  file_reader=PyPDF2。PdfFileReader (file_1,严格=False) #使用严格关闭错误提示
  pageobj=file_reader.getPage (0)
  file_write.addPage (pageobj)
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

PyPDF2读取PDF文件内容如何保存到本地三种