最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Python中PDF文件操作的示例分析-創(chuàng)新互聯(lián)

小編給大家分享一下Python中PDF文件操作的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比東西湖網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式東西湖網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋東西湖地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。題目如下:
  • 利用第九章的os.walk()函數(shù)編寫腳本,遍歷文件夾中的所有pdf,用命令行提供的命令對(duì)這些PDF進(jìn)行加密,用原來的文件名加上_encrypted.pdf后綴,保存每個(gè)加密的PDF。在刪除原來的文件之前,嘗試用程序讀取并解密該文件,確保被正確加密

  • 然后編寫一個(gè)程序,找到文件夾中所有加密的PDF文件,利用提供的口令,創(chuàng)建pdf的解密拷貝,如果口令不對(duì),程序應(yīng)該打印一條消息,
     并繼續(xù)處理下一個(gè)pdf文件


思路如下:

- 程序內(nèi)函數(shù)1需要做以下事情:
找出文件夾中所有PDF文件
對(duì)PDF文件進(jìn)行加密
保存加密的PDF文件
檢驗(yàn)是否正確加密
刪除源文件
- 程序內(nèi)函數(shù)2需要做以下事情:
遍歷文件夾中所有帶_encrypted后綴的PDF文件
利用提供的口令進(jìn)行打開
能夠正確打開,則進(jìn)行口令拷貝保存到txt文件
不能正確打開輸出到屏幕
- 代碼需要做以下事情:
導(dǎo)入os,PyPDF2,sys,send2trash
生成新文件夾用于保存加密PDF及拷貝文本

  • 編寫一個(gè)加密函數(shù)
     函數(shù)內(nèi)調(diào)用os.walk()遍歷文件夾,文件名保存到列表
     命令行參數(shù)sys.argv()提供加密口令
     for循環(huán)進(jìn)行文件加密和保存加密文件操作
     decrypt進(jìn)行解密,確保正確加密,并進(jìn)行反饋
     刪除原有文件(send2trash)

  • 編寫一個(gè)生成解密拷貝函數(shù)
     os.walk()遍歷,decrypt進(jìn)行解密,反饋結(jié)果,生成密碼拷貝txt
     try-except進(jìn)行decrypt控制,解密失敗打印消息,continue繼續(xù)


代碼如下:由于我的代碼在命令行運(yùn)行時(shí)提示找不到PyPDF2模塊,所以sys.argv命令行參數(shù)用的字符串直接放入函數(shù)進(jìn)行代替。
#! python3
import os, sys, PyPDF2,send2trash

os.makedirs(".\\NewPDF")
print("文件夾創(chuàng)建成功!")
path2 = os.path.abspath(".\\NewPDF")
# 文件加密函數(shù)
def decryptFile(argv,p = os.path.abspath(".\\New")):
 tagFloder = '.\\PDF'
 pdfList = []
 #當(dāng)前目錄下創(chuàng)建新文件夾
 #os.makedirs(".\\NewPDF")
 #遍歷目標(biāo)文件夾,將.pdf文件名添加到列表
 for foldername, subfolders, filenames in os.walk(tagFloder):
  for filename in filenames:
   if filename.endswith('.pdf'):
    pdfList.append(filename)
    print('找到PDF文件:%s' %filename)
   else:
    continue
 #對(duì)pdf文件進(jìn)行加密)
 for i in pdfList:
  pdfFile = open(os.path.join(foldername,filename),'rb')
  pdfReader = PyPDF2.PdfFileReader(pdfFile)
  pdfWriter = PyPDF2.PdfFileWriter()
  #拷貝
  for pageNum in range(pdfReader.numPages):
   pdfWriter.addPage(pdfReader.getPage(pageNum))
  newName = i[0:-4] #對(duì)文件名進(jìn)行分割
  pdfWriter.encrypt(argv) #口令加密
  pdfResult = open("{0}\\{1}_encrypted.pdf".format(p,newName),"wb+") #創(chuàng)建新文件名對(duì)象
  pdfWriter.write(pdfResult) #寫入新文件
  pdfReader2 = PyPDF2.PdfFileReader(pdfResult,'rb')
  #進(jìn)行加密確認(rèn)
  if pdfReader2.decrypt(argv):
   print("正確加密!刪除原文件中...")
   try:
    send2trash.send2trash(os.path.join(foldername,i))
   except:
    print("刪除原文件:%s 失敗!"%i)
  pdfResult.close()
  print("Done!")

# 口令拷貝函數(shù)
def copyDcrypt(argv,p = os.path.abspath(".\\New")):
 pdfList = []
 for foldername, subfolders, filenames in os.walk("."):
  print("父文件夾:%s"%foldername)
  for filename in filenames:
   if filename.endswith(".pdf"):
    pdfReader = PyPDF2.PdfFileReader(open(os.path.join(foldername,filename),'rb'))
    if pdfReader.isEncrypted:
     pdfList.append(filename)
     print('找到已加密PDF文件:%s' % filename)
   else:
    continue
  for i in pdfList:
   newName = i[0:-4] #對(duì)文件名進(jìn)行分割
   try:
    if pdfReader.decrypt(argv) == 1:
     copyFile = open("{0}\\{1}_PASSWORD.txt" .format(p,newName), 'w')
     copyFile.write("Password is : %s" % argv)
     copyFile.close()
     print("口令正確!拷貝生成成功!")
    else:
     print("口令錯(cuò)誤!")
   except:
    continue
# 調(diào)用函數(shù)
decryptFile("ABCDEFG",path2) 

copyDcrypt("ABCDEFG",path2)

運(yùn)行結(jié)果:
  • pycharm界面運(yùn)行結(jié)果:
     Python中PDF文件操作的示例分析
     Python中PDF文件操作的示例分析
     - 原文件夾:
     Python中PDF文件操作的示例分析
     - 新文件夾:
     Python中PDF文件操作的示例分析
     - 拷貝文本文件:
     Python中PDF文件操作的示例分析

以上是“Python中PDF文件操作的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當(dāng)前名稱:Python中PDF文件操作的示例分析-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://fisionsoft.com.cn/article/psios.html