python编程快速上手办公自动化_关于Pdf偏执狂的解答

该脚本使用Python实现对PDF文件的批量加密和解密功能。通过命令行参数提供口令,加密后的文件会添加_encrepted.pdf后缀。脚本会遍历指定目录及其子目录中的PDF文件,加密过程由PyPDF2库完成。解密时,如果口令正确则解密文件,否则打印错误信息。注意,一次只能运行加密或解密其中一个功能,因为口令是共享的。
摘要由CSDN通过智能技术生成

1、
遍历文件夹中所有的PDF,用命令行提供的口令对PDF加密
原来的文件名加上_encrepted.pdf后缀,保存每个加密的PDF
2、
尝试用一个程序读取并解密该文件,确保正确加密
3、
找到文件夹中所有加密的PDF文件包括子文件夹,利用提供的口令,创建PDF的解密拷贝
如果口令不对,则打印一条信息,并继续处理

#! python3
# PDF偏执狂.py
"""
1、
遍历文件夹中所有的PDF,用命令行提供的口令对PDF加密
原来的文件名加上_encrepted.pdf后缀,保存每个加密的PDF
2、
尝试用一个程序读取并解密该文件,确保正确加密
3、
找到文件夹中所有加密的PDF文件包括子文件夹,利用提供的口令,创建PDF的解密拷贝
如果口令不对,则打印一条信息,并继续处理
"""
import PyPDF2
import os
import sys
def EncodeAllPdfs():
    '''加密每个PDF并且加上名称后缀'''
    # 参数初始化
    code = sys.argv[-1]	# 命令行参数
    # 扫描文件
    for root, dirs, files in os.walk("."):
        for file in files:
            if file.endswith(".pdf"):
                print(file+"正在加密!")
                # 创建对象
                pdfObj = open(file,"rb")
                readerObj = PyPDF2.PdfFileReader(pdfObj)
                writerObj = PyPDF2.PdfFileWriter()
                # 加密操作
                for pageNum in range(readerObj.numPages):
                    writerObj.addPage(readerObj.getPage(pageNum))
                writerObj.encrypt(code)
                # 创建新文件,增加后缀
                resultPdf = open(file[0:-4]+"_encrepted.pdf","wb")
                # 给新文件添加内容
                writerObj.write(resultPdf)
                # 收尾工作
                pdfObj.close()
                resultPdf.close()
                print(file,"加密完成!","生成",file[0:-4]+"_encrepted.pdf")
def DeCodeAllPdfs():
    '''解密所有pdf文件'''
    code = sys.argv[-1]	# 命令行参数
    for roots, dirs, files in os.walk("."):
        for file in files:
            if file.endswith("_encrepted.pdf"):
                pdfObj = open(file,"rb")
                readerObj = PyPDF2.PdfFileReader(pdfObj)
                if readerObj.decrypt(code):
                    print(file+"解密成功!")
                else:
                    print(file+"解密失败!")
                pdfObj.close()
#EncodeAllPdfs() #运行时,请去掉注释符号
#DeCodeAllPdfs()

注:一次只能运行一个子函数!!!
因为:
1.编码和解码同时进行不理想
2.code用的都是最后一个命令行参数,除非你改掉一个,才可以两个子函数同时运行

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python编程快速上手可以帮助我们实现繁琐工作的自动化。Python是一种简单易学的编程语言,能够简化我们的工作流程,提高工作效率。 首先,Python具有丰富的函数库和开源工具,使得编写自动化脚本变得更加容易。我们可以使用Python来编写脚本,通过调用不同的库函数来完成各种任务,例如文件操作、数据处理、网络请求等。这些库函数已经被开发者广泛使用和测试,可以为我们节省大量的时间和精力。 其次,Python编程语言具有简洁的语法和优雅的代码风格。相比其他的编程语言,Python的代码更易读、易理解,这使得我们可以更快地上手并编写出高效的自动化脚本。Python的语法结构简单明了,可以大大缩减代码量,提高编码效率。 此外,Python还有丰富的第三方库和工具,如TensorFlow、Pandas、Numpy等,可以方便地进行数据分析、人工智能、机器学习等领域的工作。这些工具以及其提供的函数和方法大大简化了复杂任务的处理,帮助我们快速解决实际问题。 总的来说,Python编程快速上手能够让我们更方便地进行繁琐工作的自动化。它的简单易学、优雅的代码风格以及丰富的函数库和工具使得我们能够高效地编写自动化脚本,提高工作效率,减少重复劳动,为我们节约时间和精力。无论是处理数据、完成文件操作,还是进行网络请求,Python都可以成为我们的得力助手。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值