1.导入两个模块
import os
import zipfile
2.批量压缩文件基础用法
fileNameList = [] #文件名称列表
nginx_path = '/nginx/files/' #nginx地址
zip_url = nginx_path + 'good.zip' #压缩文件的地址
#解压是 r , 压缩是 w 追加压缩是 a
zip = zipfile.ZipFile(zip_url, 'w', zipfile.ZIP_DEFLATED)
for fileName in fileNameList:
strfileName = str(fileName)
nginx_url = nginx_path + strfileName
if os.path.exists(nginx_url): #做一个简单的判断,防止报错
zip.write(nginx_url)
zip.close()
3.中途遇到的问题
①压缩文件中带中文报错
'ascii' codec can't encode characters in position 38-50: ordinal not in range(128)
zip_url带了中文报错,建议先将zip_url改为全英文字符,通过rename重名即可
new_zip_url = '/nginx/file/不吃鸡蛋.zip'
os.rename(zip_url, new_zip_url)
②zip文件名称带中文,向其中添加文件是报错
'bytes' object has no attribute 'write'
将zip文件重新命名为全英文字符,再添加,重新命名即可