0


用python压缩文件并设置密码

1、zipfile设置密码

ZipFile.setpassword(pwd)

将pwd设置为默认密码以提取加密文件。在

2.6版的新增功能。

Python zipfile docs在顶部说他们“[支持对ZIP存档中的加密文件进行解密,但它目前无法创建加密文件。”

https://docs.python.org/3/library/zipfile.html

您需要使用第三方库来创建加密的zip,或者以其他方式加密存档。

例子

coding=gbk

import zipfile

import os

压缩文件路径

target = r'C:\Users\Administrator\Desktop\zip\29\29.zip'

file_url=r'C:\Users\Administrator\Desktop\zip\29\29号记事本.txt'

try:

     #mode的几种:解压:r,压缩:w,追加压缩:a

     with zipfile.ZipFile(target,mode="w") as f:

              f.write(file_url, arcname="号记事本.txt")         #不加arcname会导致压缩包里带有文件夹路径

except Exception as e:

     print("异常对象的类型是:%s"%type(e))

     print("异常对象的内容是:%s"%e)

finally:

     f.close()

2、调WINZIP

WINDOWS 平台,直接调WINZIP的zip命令行程序打包,有一个参数是加上密码的

coding=gbk

def zipDir( zipFile, dirpath,password=None):
"""
压缩指定文件夹
:param dirpath: 目标文件夹路径
:param outFullName: 保存路径+xxxx.zip
:return:
"""
import os
print("zipDir")
if password:
cmd = "zip -P %s -r %s %s" % (password, zipFile, dirpath) #有密码时设置密码并压缩
print(cmd)
else:
cmd = "zip -r %s %s" % (zipFile, dirpath) #无密码直接压缩
print(cmd)
status = os.popen(cmd)
#执行系统命令
return zipFile

if name == "main":
print("main")
zipDir('d:\z.zip','d:\list.txt','ghost')

3、rarfile

如果是rar文件解压,也是类似,同样的还是要安装相应的库

from unrar import rarfile

file = rarfile.RarFile('压缩文件路径')

file.extractall('解压到目标文件夹路径')

4、使用7-Zip

使用7-Zip通过子流程模块工作。以下是我遇到并必须解决的一些问题: 您需要在Popen子进程中指定7zip的路径,并使用变量(而不是实数字符串)构建命令:

appPath="C:\Program Files\7-Zip"

zApp="7z.exe"

zAction='a'

zPass='-pPASSWORD'

zAnswer='-y'

zDir=directoryToZip

progDir=os.path.join(appPath,zApp)

cmd = [zApp, zAction, zipFileName, zPass, zAnswer, zDir]

subprocess.Popen(cmd, executable=progDir, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)

这将创建一个zip文件(在zipFileName变量中的名称所在的位置),包括“directoryToZip”路径中的内容(目录和文件)

必须将progDir指定为独立于作为Open命令一部分调用的应用程序(这是可执行路径),并且需要将命令字符串构建为变量来处理windows反斜杠转义设置。在

标签:

本文转载自: https://blog.csdn.net/zzt0605/article/details/118851821
版权归原作者 zzt0605 所有, 如有侵权,请联系我们删除。

“用python压缩文件并设置密码”的评论:

还没有评论