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反斜杠转义设置。在
版权归原作者 zzt0605 所有, 如有侵权,请联系我们删除。