色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Python編程快速上手——PDF文件操作案例分析

瀏覽:3日期:2022-08-05 13:14:29

本文實例講述了Python PDF文件操作。分享給大家供大家參考,具體如下:

題目如下: 利用第九章的os.walk()函數編寫腳本,遍歷文件夾中的所有pdf,用命令行提供的命令對這些PDF進行加密,用原來的文件名加上_encrypted.pdf后綴,保存每個加密的PDF。在刪除原來的文件之前,嘗試用程序讀取并解密該文件,確保被正確加密 然后編寫一個程序,找到文件夾中所有加密的PDF文件,利用提供的口令,創建pdf的解密拷貝,如果口令不對,程序應該打印一條消息, 并繼續處理下一個pdf文件思路如下:

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

編寫一個加密函數 函數內調用os.walk()遍歷文件夾,文件名保存到列表 命令行參數sys.argv()提供加密口令 for循環進行文件加密和保存加密文件操作 decrypt進行解密,確保正確加密,并進行反饋 刪除原有文件(send2trash) 編寫一個生成解密拷貝函數 os.walk()遍歷,decrypt進行解密,反饋結果,生成密碼拷貝txt try-except進行decrypt控制,解密失敗打印消息,continue繼續代碼如下:由于我的代碼在命令行運行時提示找不到PyPDF2模塊,所以sys.argv命令行參數用的字符串直接放入函數進行代替。

#! python3import os, sys, PyPDF2,send2trashos.makedirs('.NewPDF')print('文件夾創建成功!')path1 = os.path.abspath('.NewPDF')# 文件加密函數def decryptFile(argv,p = os.path.abspath('.New')): tagFloder = ’.PDF’ pdfList = [] #當前目錄下創建新文件夾 #os.makedirs('.NewPDF') #遍歷目標文件夾,將.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 #對pdf文件進行加密) 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] #對文件名進行分割 pdfWriter.encrypt(argv) #口令加密 pdfResult = open('{0}{1}_encrypted.pdf'.format(p,newName),'wb+') #創建新文件名對象 pdfWriter.write(pdfResult) #寫入新文件 pdfReader2 = PyPDF2.PdfFileReader(pdfResult,’rb’) #進行加密確認 if pdfReader2.decrypt(argv): print('正確加密!刪除原文件中...') try: send2trash.send2trash(os.path.join(foldername,i)) except: print('刪除原文件:%s 失敗!'%i) pdfResult.close() print('Done!')# 口令拷貝函數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] #對文件名進行分割 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('口令錯誤!') except: continue# 調用函數decryptFile('ABCDEFG',path1) copyDcrypt('ABCDEFG',path1)運行結果: pycharm界面運行結果: Python編程快速上手——PDF文件操作案例分析 Python編程快速上手——PDF文件操作案例分析 - 原文件夾: Python編程快速上手——PDF文件操作案例分析 - 新文件夾: Python編程快速上手——PDF文件操作案例分析 - 拷貝文本文件: Python編程快速上手——PDF文件操作案例分析

更多Python相關內容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python編碼操作技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 成视频年人黄网站免费 | 久久久久久久久久免费视频 | 日本黄网在线观看 | 久草网站 | 亚洲第一激情 | 日本在线 | 中文 | 日韩一级片视频 | 亚洲欧美手机在线观看 | 亚洲欧美久久精品1区2区 | 国产成人久久精品一区二区三区 | 国产美女一级特黄毛片 | 色综合夜夜嗨亚洲一二区 | 一区二区三区四区在线视频 | 久久国产精彩视频 | 免费在线观看a级毛片 | 91亚洲综合 | 欧美级毛片 | 久久亚洲精品中文字幕第一区 | 亚洲国产高清视频 | 亚洲视频日韩视频 | 黄网站www | 亚洲美女视频网 | 国产精品久久亚洲一区二区 | 天堂视频网站 | 欧美日韩一区二区三区久久 | 欧美毛片a级毛片免费观 | 国产精品正在播放 | 国产欧美日韩亚洲 | 亚洲国产最新 | 最新亚洲国产有精品 | 亚洲第一页在线 | 日本一级特黄啪啪片 | 国内精品91最新在线观看 | 一级特级欧美a毛片免费 | 99精品视频在线在线视频观看 | 亚洲视频在线观看网站 | 爱福利极品盛宴 | 国产丶欧美丶日韩丶不卡影视 | 99视频在线观看视频一区 | 亚洲美女爱爱 | 国产精品成人免费视频不卡 |