在进行文件压缩时,需要确保传入的路径为目录而非文件。以下代码展示了如何使用 Python 中的 ZipFile 类来将一个目录(假设为“/path/to/dir”)压缩成一个 zip 文件(假设为“example.zip”):
import zipfile
def zip_dir(dir_path, zip_path):
with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zip_file:
for root, dirs, files in os.walk(dir_path):
for file in files:
file_path = os.path.join(root, file)
zip_file.write(file_path, os.path.relpath(file_path, dir_path))
zip_dir('/path/to/dir', 'example.zip')
在上述示例代码中,我们使用了 os.walk 函数来递归遍历目录下的所有文件和子目录,在每一次遍历中,使用 os.path.join 函数获取完整的子文件路径,然后使用 zip_file.write 方法将文件写入 zip 文件。注意到第二个参数传入的是通过 os.path.relpath 函数计算得到的子文件相对路径,这是为了保证生成的 zip 文件中路径信息的正确性。