电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:2日期: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 編程
相關文章:
主站蜘蛛池模板: 石英陶瓷,石英坩埚,二氧化硅陶瓷-淄博百特高新材料有限公司 | 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 | POS机办理_个人pos机免费领取-银联pos机申请首页 | 消防设施操作员考试报名时间,报名入口,报考条件 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | 耐高温电缆厂家-远洋高温电缆| 航空铝型材,7系铝型材挤压,硬质阳*氧化-余润铝制品 | 首页-恒温恒湿试验箱_恒温恒湿箱_高低温试验箱_高低温交变湿热试验箱_苏州正合 | 上海乾拓贸易有限公司-日本SMC电磁阀_德国FESTO电磁阀_德国FESTO气缸 | 物流公司电话|附近物流公司电话上门取货| 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂 | 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | 钢格栅板_钢格板网_格栅板-做专业的热镀锌钢格栅板厂家-安平县迎瑞丝网制造有限公司 | 塑料薄膜_PP薄膜_聚乙烯薄膜-常州市鑫美新材料包装厂 | 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 防伪溯源|防窜货|微信二维码营销|兆信_行业内领先的防伪防窜货数字化营销解决方案供应商 | 广西正涛环保工程有限公司【官网】| IPO咨询公司-IPO上市服务-细分市场研究-龙马咨询 | 振动台-振动试验台-振动冲击台-广东剑乔试验设备有限公司 | 干式变压器厂_干式变压器厂家_scb11/scb13/scb10/scb14/scb18干式变压器生产厂家-山东科锐变压器有限公司 | 无硅导热垫片-碳纤维导热垫片-导热相变材料厂家-东莞市盛元新材料科技有限公司 | 博莱特空压机|博莱特-阿特拉斯独资空压机品牌核心代理商 | 复合肥,化肥厂,复合肥批发,化肥代理,复合肥品牌-红四方 | 除尘布袋_液体过滤袋_针刺毡滤料-杭州辉龙过滤技术有限公司 | 机器视觉检测系统-视觉检测系统-机器视觉系统-ccd检测系统-视觉控制器-视控一体机 -海克易邦 | 菲希尔FISCHER测厚仪-铁素体检测仪-上海吉馨实业发展有限公司 | 洗砂机械-球磨制砂机-洗沙制砂机械设备_青州冠诚重工机械有限公司 | 净化工程_无尘车间_无尘车间装修-广州科凌净化工程有限公司 | 直线模组_滚珠丝杆滑台_模组滑台厂家_万里疆科技 | 湖南印刷厂|长沙印刷公司|画册印刷|挂历印刷|台历印刷|杂志印刷-乐成印刷 | 釜溪印象网络 - Powered by Discuz! | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 宁夏活性炭_防护活性炭_催化剂载体炭-宁夏恒辉活性炭有限公司 | 搜活动房网—活动房_集装箱活动房_集成房屋_活动房屋 | 电镀整流器_微弧氧化电源_高频电解电源_微弧氧化设备厂家_深圳开瑞节能 | 专业深孔加工_东莞深孔钻加工_东莞深孔钻_东莞深孔加工_模具深孔钻加工厂-东莞市超耀实业有限公司 | 对辊破碎机-液压双辊式,强力双齿辊,四辊破碎机价格_巩义市金联机械设备生产厂家 | 不锈钢监控杆_监控立杆厂家-廊坊耀星光电科技有限公司 | 机床导轨_导轨板_滚轮导轨-上海旻佑精密机械有限公司 | PO膜_灌浆膜及地膜供应厂家 - 青州市鲁谊塑料厂 |