pythonshell压缩文件_文件夹压缩成zip格式

前言:

在最近的后台开发工作中,需要将服务器的指定文件夹压缩,然后传输到前台。shell的zip命令可以很方便的实现该需求,python也有对应的模块,这里简要记录一下使用两种方式压缩文件的方法。

shell命令压缩

def zip_file(dir_path, out_path):

# 先切换到要压缩的的文件目录下,然后再压缩文件,防止压缩的文件出现深层次的文件目录

zip_shell = """

#!/bin/bash

cd {dir_path} && zip -r {out_path} *

"""

try:

result = os.popen(zip_shell.format(out_path=out_path, dir_path=dir_path)).read()

if result.lower().find("zip error") != -1: # 表示出错

logger.error(result)

return None

else:

return out_path

except Exception as e:

logger.error(u"压缩文件失败:{}".format(e.message))

logger.error(traceback.format_exc())

return None

python的zipfile模块压缩

def zip_dir(dir_path, out_path):

"""

:brief 将目标文件夹压缩为zip格式

:param dir_path: 目标文件夹路径

:param out_path: 压缩文件路径(xxx.zip)

:return: 压缩文件路径

"""

try:

zip_obj = zipfile.ZipFile(out_path, "w", zipfile.ZIP_DEFLATED)

for path, dir_names, file_names in os.walk(dir_path):

# 去掉目标跟路径,只对目标文件夹下边的文件及文件夹进行压缩

fpath = path.replace(dir_path, '')

for filename in file_names:

zip_obj.write(os.path.join(path, filename), os.path.join(fpath, filename))

zip_obj.close()

return out_path

except Exception as e:

logger.error(u"压缩文件失败:{}".format(e.message))

logger.error(traceback.format_exc())

return None

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值