You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python ZipFile:如何避免目录为空时生成空压缩包?

解决方案

要实现仅当目标目录存在文件时才创建压缩包,只需在生成压缩包前添加目录文件存在性判断即可,具体修改如下:

import zipfile
from zipfile import ZipFile, ZIP_DEFLATED
import pathlib

# STEP 3 - Create ZipFile
zip_path = 'E:/GL/download_ceridian/ceridian.zip'
directory_to_zip = 'E:/GL/download_ceridian'

folder = pathlib.Path(directory_to_zip)
# 筛选当前目录下的所有文件(排除子目录,若需包含非空子目录可调整逻辑)
filelist = [file for file in folder.iterdir() if file.is_file()]

# 仅当存在文件时才创建压缩包
if filelist:
    with ZipFile(zip_path, 'w', ZIP_DEFLATED) as zip:
        for file in filelist:
            zip.write(file, arcname=file.name)
else:
    print("目标目录无文件,跳过压缩包生成")

关键修改说明:

  • 用列表推导式筛选出目录下的实际文件(通过is_file()排除子目录),避免因空目录导致的空压缩包;
  • 添加if filelist:判断分支,只有当文件列表不为空时,才执行压缩包创建操作;
  • 若你需要包含非空的子目录(即只要目录下有内容,不管是文件还是非空子目录都生成压缩包),可将筛选逻辑改为:
    # 判断目录下是否有任意内容(文件或目录)
    has_content = any(True for _ in folder.iterdir())
    if has_content:
        # 执行压缩代码
    

内容的提问来源于stack exchange,提问作者Tye Mathews

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:46:04