返回顶部
首页 > 资讯 > 后端开发 > Python >python tar.gz格式压缩、解压
  • 249
分享到

python tar.gz格式压缩、解压

格式pythontar 2023-01-31 08:01:24 249人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

需求描述现在有一个目录,需要将此目录打包成tar.gz文件。因为有一个Django项目,需要用到此功能!tar.gz目录结构如下:./├── folder │   ├── 1.doc │&n

需求描述

现在有一个目录,需要将此目录打包成tar.gz文件。因为有一个Django项目,需要用到此功能!

tar.gz

目录结构如下:

./├── folder
│   ├── 1.doc
│   └── 2.txt
└── packing.py

 

packing.py 是python程序,需要将folder目录打包成tar.gz文件

 

packing.py 内容如下:

#!/usr/bin/env python3coding: utf-8
import os, tarfile

def make_targz(output_filename, source_dir):
    """
    一次性打包目录为tar.gz
    :param output_filename: 压缩文件名
    :param source_dir: 需要打包的目录
    :return: bool
    """
    try:
        with tarfile.open(output_filename, "w:gz") as tar:
            tar.add(source_dir, arcname=os.path.basename(source_dir))

        return True
    except Exception as e:
        print(e)
        return False

make_targz('aa.tar.gz','folder')


注意:

空子目录会被打包,如果只打包不压缩,将"w:gz"参数改为"w:"或"w"即可。

 

执行程序,会在当前目录下生成aa.tar.gz文件 

 

def untar(fname, dirs):
    """
    解压tar.gz文件
    :param fname: 压缩文件名
    :param dirs: 解压后的存放路径
    :return: bool
    """
    try:
        t = tarfile.open(fname)
        t.extractall(path = dirs)
        return True
    except Exception as e:
        print(e)
        return False

untar('aa.tar.gz','./')


完整代码如下:

#!/usr/bin/env Python3
# coding: utf-8
import os, tarfile

def make_targz(output_filename, source_dir):
    """
    一次性打包目录为tar.gz
    :param output_filename: 压缩文件名
    :param source_dir: 需要打包的目录
    :return: bool
    """
    try:
        with tarfile.open(output_filename, "w:gz") as tar:
            tar.add(source_dir, arcname=os.path.basename(source_dir))

        return True
    except Exception as e:
        print(e)
        return False


def untar(fname, dirs):
    """
    解压tar.gz文件
    :param fname: 压缩文件名
    :param dirs: 解压后的存放路径
    :return: bool
    """
    try:
        t = tarfile.open(fname)
        t.extractall(path = dirs)
        return True
    except Exception as e:
        print(e)
        return False

# make_targz('aa.tar.gz','folder')
untar('aa.tar.gz','./')

执行程序,就会将aa.tar.gz解压到当前文件夹下

 

把文件的二进制代码压缩,把相邻的0,1代码减少,比如有000000,可以把它变成6个0 的写法60,来减少该文件的空间。

由于计算机处理的信息是以二进制数的形式表示的,因此压缩软件就是把二进制信息中相同的字符串以特殊字符标记来达到压缩的目的。为了有助于理解文件压缩,请在脑海里想象一幅蓝天白云的图片。对于成千上万单调重复的蓝色像点而言,与其一个一个定义“蓝、蓝、蓝……”长长的一串颜色,还不如告诉电脑:“从这个位置开始存储1117个蓝色像点”来得简洁,而且还能大大节约存储空间。这是一个非常简单的图像压缩的例子。其实,所有的计算机文件归根结底都是以“1”和“0”的形式存储的,和蓝色像点一样,只要通过合理的数学计算公式,文件的体积都能够被大大压缩以达到“数据无损稠密”的效果。总的来说,压缩可以分为有损和无损压缩两种。如果丢失个别的数据不会造成太大的影响,这时忽略它们是个好主意,这就是有损压缩。有损压缩广泛应用于动画、声音和图像文件中,典型的代表就是影碟文件格式mpeg、音乐文件格式mp3和图像文件格式jpg。但是更多情况下压缩数据必须准确无误,人们便设计出了无损压缩格式,比如常见的zip、rar等。压缩软件(compression software)自然就是利用压缩原理压缩数据的工具,压缩后所生成的文件称为压缩包(arcHive),体积只有原来的几分之一甚至更小。当然,压缩包已经是另一种文件格式了,如果想使用其中的数据,首先得用压缩软件把数据还原,这个过程称作解压缩。常见的压缩软件有winzip、winrar等。

 

本文参考链接:

https://www.cnblogs.com/liangqihui/p/9219333.html

Https://www.cnblogs.com/kaituorensheng/p/4493145.html


--结束END--

本文标题: python tar.gz格式压缩、解压

本文链接: https://lsjlt.com/news/193535.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python tar.gz格式压缩、解压
    需求描述现在有一个目录,需要将此目录打包成tar.gz文件。因为有一个Django项目,需要用到此功能!tar.gz目录结构如下:./├── folder │   ├── 1.doc │&n...
    99+
    2023-01-31
    格式 python tar
  • tar.gz 压缩和解压命令
    tar.gz是什么? 以·tar.gz为后缀的文件是一种压缩文件,在Linux和macOS下常见,Linux和macOS都可以直接解压使用这种压缩文件。 解压命令 tar -zxvf data.tar.gz 运行命令后会将data.tar...
    99+
    2023-08-30
    linux 服务器 ubuntu
  • linux tar.gz zip 解压缩 压缩命令
    linux tar.gz zip 解压缩 压缩命令http://apps.hi.baidu.com/share/detail/37384818download ADT linkhttp://dl.google.com/android/ADT...
    99+
    2023-06-06
  • linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
    本文介绍了linux下的压缩程式tar、gzip、gunzip、bzip2、bunzip2、compress 、uncompress、 zip、 unzip、rar、unrar等程式,以及如何使用它们对.tar、.gz 、.tar.gz、....
    99+
    2023-06-06
  • Linux下常用压缩格式的压缩与解压方法详解
    .tar 解包: tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) -----------------------------...
    99+
    2022-06-03
    linux 压缩格式 linux压缩与解压
  • Linux中有哪些压缩格式的压缩与解压方法
    Linux中有哪些压缩格式的压缩与解压方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是Linux系统Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于P...
    99+
    2023-06-09
  • Linux通过命令压缩与解压缩的方法| tar, tar.gz, tar.bz2
    我最开始用 Linux 的时候,不是在 cd、mkdir 之类的这些命令受到了阻碍,因为这类命令在 windows 的 DOS 下也经常性使用,所以很容易上手。但是,碰到了压缩文件的时候,我就一脸懵逼,因为...
    99+
    2022-06-04
    解压缩 命令 方法
  • Linux下 *.tar.gz文件解压缩命令
    Linux tar(英文全拼:tape archive )命令用于备份文件。 tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。 gzip 是 GNU 组织开发的一个压缩程序,.gz 结尾的文件就是 gzip 压...
    99+
    2023-08-31
    linux 服务器 运维
  • linux如何解压一个zip格式压缩包
    ...
    99+
    2024-04-02
  • python zip压缩及解压
    zipfile模块简介zipfile模块()用于压缩文件成zip及解压zip文件,模块介绍如下。·zipfile.ZipFile(file,mode)openaZIPfile,wherefilecanbeeitherapathto...
    99+
    2023-01-31
    python zip
  • python利用gzip压缩解压缩Str
    When working with a data stream instead of a file, use the GzipFileclass directly to compress or uncompress it. T...
    99+
    2023-01-31
    解压缩 python gzip
  • linux如何解压一个bzip2格式的压缩包
    ...
    99+
    2024-04-02
  • linux如何解压一个gzip格式的压缩包
    ...
    99+
    2024-04-02
  • linux 解压.tar.gz文件
    (1)解压 .tar.gz文件 tar -zxvf 文件名.tar.gz 其中,文件名.tar.gz 是你要解压的文件的名称。 解释一下命令的选项: -z:表示使用 gzip 压缩算法进行解压。-x:表示解压操作。-v:可选参数,用于显示详...
    99+
    2023-08-31
    linux 服务器 运维
  • linux解压tar.gz文件
    LINUX解压缩TAR.GZ文件命令 以下介绍如何压缩与解压 .tar.gz 格式的文件 压缩命令: 命令格式: tar -zcvf 压缩文件名 .tar.gz 被压缩文件名 可先切换到当前目录下,压缩文件名和被压缩文件名都可加入路径。 解...
    99+
    2023-08-20
    linux 服务器 运维
  • linux中压缩tar.gz命令怎么用
    小编给大家分享一下linux中压缩tar.gz命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!命令是“tar  -zcvf  +文件名...
    99+
    2023-06-15
  • Python文件的压缩与解压
    目录前言:1、压缩整个文件夹2、压缩指定扩展名文件3、获取指定类型的待压缩文件列表4、解压文件前言: Python在人工智能,后台服务等领域中得到了广泛应用。由于python有着大量...
    99+
    2024-04-02
  • Python压缩/解压gzip大文件
    Code tells all:#encoding=utf-8 #author: walker #date: 2015-10-26 #summary: 测试gzip压缩/解压文件 import gzip    BufSize = 1024*...
    99+
    2023-01-31
    大文件 Python gzip
  • 利用R语言解压与压缩.tar.gz.zip等格式文件
    目录.zip.tar.gz.gz 与 .bz21) 直接解压2) 直接读取参考最近尝试用 R 对一些文件进行批量的解压与压缩,这里记录一些常用的解压与压缩的方法。 由于解压与压缩是对...
    99+
    2024-04-02
  • tar 打包压缩与解压缩
            tar 命令用于对文件进行打包压缩或解压缩。         在Linux系统中,常见的压缩包文件格式有很多,其中主要使用的是 .tar 或 .tar.gz 或 .tar.bz2 的格式。         1、tar 命令的...
    99+
    2023-10-09
    linux 服务器 运维 centos bash
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作