首页 > 解决方案 > 如何在网络上自动压缩文件

问题描述

我一直在尝试编写一个脚本来自动压缩驱动器上的文件夹。我希望能够一次压缩 3 个文件夹,然后重命名压缩文件(在驱动器上)。这花费了我的计算机时间太长,所以我想编写一个脚本,当我不工作时,它会在晚上自动为我执行此操作。

这可能吗?我应该为此使用 Java/Python 还是 VBA?你推荐任何其他编程语言吗?任何帮助将不胜感激 - 谢谢!

标签: javascriptpythonvbazip

解决方案


你可以使用python:

import os
import zipfile

def zipdir(path, ziph):
    # ziph is zipfile handle
    for root, dirs, files in os.walk(path):
        for file in files:
            ziph.write(os.path.join(root, file),
                       os.path.relpath(os.path.join(root, file),
                                       os.path.join(path, '..')))


def zipit(dir_list, zip_name):
    zipf = zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED)
    for dir in dir_list:
        zipdir(dir, zipf)
    zipf.close()

my_directories_to_zip = ['complete/path/dir1', 'complete/path/dir2', 'complete/path/dir3']
destination = 'result.zip'

zipit(my_directories_to_zip, destination)

推荐阅读