本文实例讲述了Python PDF文件操作。分享给大家供大家参考,具体如下:
– 程序内函数1需要做以下事情: 找出文件夹中所有PDF文件 对PDF文件进行加密 保存加密的PDF文件 检验是否正确加密 删除源文件 – 程序内函数2需要做以下事情: 遍历文件夹中所有带_encrypted后缀的PDF文件 利用提供的口令进行打开 能够正确打开,则进行口令拷贝保存到txt文件 不能正确打开输出到屏幕 – 代码需要做以下事情: 导入os,PyPDF2,sys,send2trash 生成新文件夹用于保存加密PDF及拷贝文本
#! python3
import os, sys, PyPDF2,send2trash
os.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)
– 原文件夹:
– 新文件夹:
– 拷贝文本文件:
更多Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。