zoukankan      html  css  js  c++  java
  • Python Linux系统管理之使用Python管理压缩包

    一、使用tarfile库读取与创建tar包

    0、先创建一些测试文件

    touch {1..2}.txt

    1、创建压缩包

    In [7]: import tarfile 
    In [9]: with tarfile.open('demo.tar',mode='w') as out: 
       ...:     out.add('1.txt') 
       ...:     out.add('2.txt') 
       ...:                                                                                                                                                                 
    ---------------------------------------------------------------------------
    FileNotFoundError                         Traceback (most recent call last)
    <ipython-input-9-0c341d269b4b> in <module>
          1 with tarfile.open('demo.tar',mode='w') as out:
    ----> 2     out.add('1.txt')
          3     out.add('2.txt')
          4 
    # 最后一空行直接回车即可

    2、读取tar包

    In [3]: with tarfile.open(‘demo.tar’) as t:
    …: for file in t.getmembers():

    …: print(file.name)

    …:

    1.txt

    2.txt

    3、创建压缩包

    with tarfile.open(‘demo.tar.gz’,mode=’w:gz’) as out:
    …: out.add(‘1.txt’)

    …: out.add(‘2.txt’)

    …:

    4、读取压缩包

    In [6]: with tarfile.open(‘demo.tar.gz’,mode=’r:gz’) as out:
    …: for f in out.getmembers():

    …: print(f.name)

    …:

    1.txt

    2.txt

    5、提取单个或者所有文件

    In [14]: with tarfile.open(‘demo.tar.gz’,mode=’r:gz’) as out:
    …: out.extract(‘1.txt’)

    …:

    In [15]: ls

    1.txt anaconda-ks.cfg demo.tar demo.tar.gz

    In [16]: with tarfile.open(‘demo.tar.gz’,mode=’r:gz’) as out:

    …: out.extractall()

    …:

    In [17]: ls

    1.txt 2.txt anaconda-ks.cfg demo.tar demo.tar.gz

    二、使用zipfile库创建和读取压缩包

    1、创建zip文件

    In [1]: import zipfile
    In [2]: newZip = zipfile.ZipFile(‘demo.zip’,’w’)

    In [3]: newZip.write(‘1.txt’)

    In [4]: newZip.write(‘2.txt’)

    In [5]: newZip.close()

    In [6]: ls

    1.txt 2.txt anaconda-ks.cfg demo.tar demo.tar.gz demo.zip

    2、读取zip文件

    In [7]: newZip = zipfile.ZipFile(‘demo.zip’)
    In [8]: newZip.namelist()

    Out[8]: [‘1.txt’, ‘2.txt’]

    3、解压zip文件

    In [12]: newZip.extract(‘1.txt’)
    Out[12]: ‘/root/1.txt’

    In [13]: newZip.extractall()

    In [14]: ls

    1.txt 2.txt anaconda-ks.cfg demo.tar demo.tar.gz demo.zip

    三、使用shutil管理压缩包

    In [1]: import shutil
    In [2]: shutil.make_archive(‘demo’,’zip’)

    Out[2]: ‘demo.zip’

    In [3]: shutil.make_archive(‘demo’,’gztar’)

    Out[3]: ‘demo.tar.gz’

    In [4]: shutil.unpack_archive(‘demo.tar.gz’)

    In [5]: shutil.unpack_archive(‘demo.zip’)

  • 相关阅读:
    4.文本编辑器vi的简单实用与指针介绍
    3.理解make命令——编译源文件安装
    2.换一种方式理解linux命令行
    1.linux环境搭建
    Tomcat 何时解压war包
    正则表达式8---再谈小括号
    利用vue-resource模拟百度下拉列表
    那些年iframe的坑(一)
    $nextTick()的理解
    一个超简单的vue商品计算总金额
  • 原文地址:https://www.cnblogs.com/liujunjun/p/13475463.html
Copyright © 2011-2022 走看看