• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

用python压缩文件

武飞扬头像
Desperado
帮助1

自从决定每周开始写技术文章以来,自己确实有一些变化,今天比较晚了,就写一个python的小功能吧,用Python来实现压缩功能。

用zipfile实现

ZipFile是Python中用于读取和创建ZIP文件的第三方库。它提供了一个接口来处理ZIP格式的归档文件,包括创建、读取、写入、添加和列出ZIP文件中的文件。

import os
import zipfile
 
def my_zip_function(zip_file_name, zip_file_list=[], zip_dir_list=[]):
    with zipfile.ZipFile(zip_file_name, "w") as zip_obj:
        # 压缩文件
        for tmp_file in zip_file_list:
            zip_obj.write(tmp_file, arcname=os.path.basename(tmp_file))
        # 压缩目录
        for tmp_dir in zip_dir_list:
            # zipfile没有直接压缩目录的功能,要压缩目录只能遍历目录一个一个文件压。
            for root, dirs, files in os.walk(tmp_dir):
                # 如果想要目录为空时仍将该目录压缩进去,该目录也要压缩一遍;反之请将以下行注释掉
                zip_obj.write(root)
                for tmp_file in files:
                    # 拼接文件完整目录,不然只用文件名代码找不到文件
                    tmp_file_path = os.path.join(root, tmp_file)
                    zip_obj.write(tmp_file_path, arcname=tmp_file)

备注:

  • 加arcname是为了防止压缩之后的文件存在多重目录
  • zipfile只能根据文件进行压缩,如果需要压缩目录中的所有文件,需要对目录进行遍历

更直观的方式

发挥Python胶水语言的特性,如果这个文件压缩的脚本是在Linux上的,那么只要用python调上一层shell命令就好了,大道至简,只用两行代码,也可以实现用zip压缩的功能,直接上代码。

import os
os.system(f'zip {output}.zip {input}')

以上命令如果返回找不到zip包,则需要在系统上先安装zip包。

yum install -y zip

除此之外,linux系统还提供了诸如gzip、tar等其他压缩方式,同样地,只要用python封装一下就可以了。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbbfke
系列文章
更多 icon
同类精品
更多 icon
继续加载