2021年7月

压缩

import subprocess

addzip = subprocess.Popen('7z.exe a -t7z "压缩文件.7z" "要打包的文件" -r -p密码 -mx=9 -m0=LZMA2 -ms=10m -mf=on -mhc=on -mmt=on')
# 压缩文件为7z格式,使用最高压缩强度,开启多线程

addzip.wait()
# 等待进程结束,防止压缩未完成就继续执行之后的命令

解压

import subprocess

unzip = subprocess.Popen('7z.exe x "压缩文件.7z" -o"输出路径" -aoa -p密码')
# 解压缩文件

unzip.wait()
# 等待进程结束,防止压缩未完成就继续执行之后的命令

import zipfile

zipfile.is_zipfile('压缩文件')
# 检查文件是否是zip压缩包

file = zipfile.ZipFile('压缩文件')
# 打开压缩文件

file = zfile.extractall(path='解压路径',pwd=str("密码").encode("ascii"))
# 解压文件,zipfile只支持传入byte类型密码,不能直接传入字符串

newZip = zipfile.ZipFile('压缩文件名', 'w')
# 打开/创建文件,w指以写入方式打开

newZip.write('要写入的文件', compress_type=zipfile.ZIP_DEFLATED)
# 写入文件

newZip.close()
# 关闭文件

使用pyinstaller即可,首先安装pyinstaller

pip install pyinstaller

打开Python文件所在目录,执行以下命令,进行打包


pyinstaller test.py
# 打包"test.py"
# 可使用参数有:
# -i Img 指定文件图标
# -F 打包为单个文件 | -D 打包为一个目录
# -w 隐藏控制台窗口 | -c 显示控制台窗口
# -d 打包Debug版本 | -a 不包含Unicode字符集支持
# -o Dir 指定spec文件的生成目录 | -n Name 指定项目名与生成spec文件名,默认为第一个脚本的文件名