乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Python辦公自動化|批量合并PDF,拿來就用

       liqualife 2020-05-07

      第一時間接收最新Python干貨!

      早起Python推薦搜索
      Python
      Pandas
      數(shù)據(jù)分析

      系列導(dǎo)讀

      Python辦公自動化|從Word到Excel
      Python辦公自動化|從Excel到Word

      大家好,今天分享一個實用的辦公腳本:將多個PDF合并為一個PDF,例如我手上現(xiàn)在有如下3個PDF分冊,需要整合成一個完整的PDF

      如果換成你操作的話,是不是打開百度搜索:PDF合并,然后去第三方網(wǎng)站操作,可能會收費不說還擔(dān)心文件泄漏,現(xiàn)在有請Python出場,簡單快速,光速合并,拿走就用!

      首先導(dǎo)入需要的庫和路徑設(shè)置

      import os
      from PyPDF2 import PdfFileReader, PdfFileWriter
      if __name__ == '__main__':
          # 設(shè)置存放多個pdf文件的文件夾
          dir_path = r'C:\Scientific Research\Knowladge\Ophthalmology\Chinese Ophthalmology' 
          # 目標(biāo)文件的名字
          file_name = '中華眼科學(xué)(第3版)合并版.pdf' 

      接著獲取所有pdf文件的絕對路徑,這里需要利用os庫中的os.walk遍歷文件和os.path.join拼接路徑

      for dirpath, dirs, files in os.walk(dir_path):
          print(dirpath)
          print(files)
      # 結(jié)果返回當(dāng)前路徑、當(dāng)前路徑下文件夾,并以列表返回所有文件

      建議直接將需要合并的pdf放在一個文件夾,這樣就無需再對文件后綴進(jìn)行判斷,包裝成函數(shù)后如下:

      def GetFileName(dir_path):
          file_list = [os.path.join(dirpath, filesname) \
                       for dirpath, dirs, files in os.walk(dir_path) \
                       for filesname in files]
          return file_list
      調(diào)用該函數(shù)的結(jié)果


      現(xiàn)在建立合并PDF的函數(shù)

      def MergePDF(dir_path, file_name):
          # 實例化寫入對象
          output = PdfFileWriter()
          outputPages = 0
          # 調(diào)用上一個函數(shù)獲取全部文件的絕對路徑
          file_list = GetFileName(dir_path)

          for pdf_file in file_list:
              print('文件:%s' % pdf_file.split('\\')[-1], end=' ')

              # 讀取PDF文件
              input = PdfFileReader(open(pdf_file, 'rb'))
              # 獲得源PDF文件中頁面總數(shù)
              pageCount = input.getNumPages()
              outputPages += pageCount
              print('頁數(shù):%d' % pageCount)
              # 分別將page添加到輸出output中
              for iPage in range(pageCount):
                  output.addPage(input.getPage(iPage))
          print('\n合并后的總頁數(shù):%d' % outputPages)
          # 寫入到目標(biāo)PDF文件
          print('PDF文件正在合并,請稍等......')
          with open(os.path.join(dir_path, file_name), 'wb'as outputfile:
              # 注意這里的寫法和正常的上下文文件寫入是相反的
              output.write(outputfile)
          print('PDF文件合并完成')

      可以看到雖然待合并的PDF文件比較大,但是依舊快速的合并成功!


      最后附上完整代碼,只需將代碼中PDF的路徑和文件名修改即可使用!

      import os
      from PyPDF2 import PdfFileReader, PdfFileWriter

      def GetFileName(dir_path):
          file_list = [os.path.join(dirpath, filesname) \
                       for dirpath, dirs, files in os.walk(dir_path) \
                       for filesname in files]
          return file_list

      def MergePDF(dir_path, file_name):
          output = PdfFileWriter()
          outputPages = 0
          file_list = GetFileName(dir_path)
          for pdf_file in file_list:
              print('文件:%s' % pdf_file.split('\\')[-1], end=' ')
              # 讀取PDF文件
              input = PdfFileReader(open(pdf_file, 'rb'))
              # 獲得源PDF文件中頁面總數(shù)
              pageCount = input.getNumPages()
              outputPages += pageCount
              print('頁數(shù):%d' % pageCount)
              # 分別將page添加到輸出output中
              for iPage in range(pageCount):
                  output.addPage(input.getPage(iPage))
          print('\n合并后的總頁數(shù):%d' % outputPages)
          # 寫入到目標(biāo)PDF文件
          print('PDF文件正在合并,請稍等......')
          with open(os.path.join(dir_path, file_name), 'wb'as outputfile:
              # 注意這里的寫法和正常的上下文文件寫入是相反的
              output.write(outputfile)
          print('PDF文件合并完成')

      if __name__ == '__main__':
          # 設(shè)置存放多個pdf文件的文件夾
          dir_path = r'C:\Scientific Research\Knowladge\Ophthalmology\Chinese Ophthalmology'
          # 目標(biāo)文件的名字
          file_name = '中華眼科學(xué)(第3版)合并版.pdf'
          MergePDF(dir_path, file_name)

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多