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’)

  • 相关阅读:
    time模块
    Spring注入方式及注解配置
    Spring注入值得2种方式:属性注入和构造注入
    MySQL命令行登陆,远程登陆MySQL
    通过XMLHttpRequest和jQuery两种方式实现ajax
    Linux常用命令
    ASP.NET 打包下载文件
    从用户浏览器输入url到用户看到页面结果的过程,发生了什么事情?
    冒泡排序的三种实现
    字符串编码C#
  • 原文地址:https://www.cnblogs.com/liujunjun/p/13475463.html
Copyright © 2011-2022 走看看