使用PyPDF2加密PDF文件后弹出Permission denied错误问题
PyPDF2加密PDF触发Permission denied报错解决方法
你的代码加密逻辑本身没有问题,这个报错是文件系统层面的写入拦截导致的,按以下优先级排查即可:
- 检查目标输出文件是否被占用:如果你之前已经生成过同名的
encrypted-pdf.pdf,且正通过PDF阅读器、WPS、浏览器等程序打开这个文件,Windows系统会默认给打开的文件加写入锁,脚本没法覆盖写入。关闭所有打开该文件的程序后重新运行脚本即可。 - 检查保存路径的写入权限:如果你把脚本的工作目录、输出文件路径设在了C盘根目录、Program Files文件夹(Windows),或是/root、/system等系统级目录(Mac/Linux)这类需要管理员权限才能写入的受保护位置,普通权限启动的Python进程没有写入资格。可以把输出路径改到桌面、个人文档这类有完整读写权限的目录,Windows下右键以管理员身份运行IDE/命令行、Mac/Linux下加sudo执行脚本即可。
- 检查目标文件的属性设置:如果已存在的
encrypted-pdf.pdf被设置为只读属性,也会触发权限报错。右键点击该文件打开属性面板,取消「只读」选项的勾选后重试即可。
额外注意:不要把输出文件的名字设置成和你读取的源文件
example.pdf完全一致,读取源文件时会占用文件句柄,同时写入覆盖同名文件也会大概率触发权限冲突,加密后的文件单独使用新文件名存储即可,你当前代码的文件名设置是符合要求的,不用调整。
内容的提问来源于stack exchange,提问作者darthvader40
相关产品推荐
相关产品推荐

