如何在Windows平台实现zip压缩命令?

最近试了一把用Python完成文件压缩的代码:

import os
import time

# 1. 需要备份的文件与目录将被指定在一个列表中。
source = 'E:\\PythonTest\\BackupTest\\code'
#2. 备份文件必须存储在一个主备份目录中
target_dir='E:\\PythonTest\\BackupTest\\backup'
# 3. 备份文件将打包压缩成 zip 文件。
# 4. zip 压缩文件的文件名由当前日期与时间构成。
target=target_dir+os.sep+time.strftime('%Y%m%d%H%M%S')+'.zip'
# 如果目标目录还不存在,则进行创建
if not os.path.exists(target_dir):
os.mkdir(target_dir)
# 5. 我们使用 zip 命令将文件打包成 zip 格式
zip_command='zip -r {0} {1}'.format(target,''.join(source))
# 运行备份
print('zip command is:')
print(zip_command)
if os.system(zip_command)==0:
print('Successful backup to',target)
else:
print('Backup FAILED')


用cmd执行之后,发现zip命令在Windows平台不能执行,如下图:

如何在Windows平台实现zip压缩命令?


因为zip命令是Linux系统中的,后来找了一圈,找到了“GnuWin32”,因为GnuWin32主要是对习惯linux工具的人员,在windows上提供一套类似的命令。GnuWin32里面包括很多标准命令,具体参见:http://gnuwin32.sourceforge.net/packages.html.


在我们这个实例中,要用到的是zip命令,所以我们要找到GnuWin32 zip的安装包:

如何在Windows平台实现zip压缩命令?


安装GnuWin32 zip成功之后,把安装路径(比如“C:\Program Files (x86)\GnuWin32\bin”)添加至系统变量path中:

如何在Windows平台实现zip压缩命令?


添加系统变量之后,电脑需要重启一下,然后在执行刚才的代码,成功了:

如何在Windows平台实现zip压缩命令?


 在我们制定的路径E:\PythonTest\BackupTest\backup中,我们也看到了最终压缩成功的文件"20170831144109.zip".

如何在Windows平台实现zip压缩命令?

精彩推荐:

更多精彩内容,敬请关注公众号: 存储随笔,Memory-logger.

如何在Windows平台实现zip压缩命令?