python 使用zip命令压缩文件夹 去掉绝对路径

[toc]html

#python + shutilzip 压缩命令python

@(python)linux

遇到的问题

1、shutil.make_archive压缩后使用unzip解压后路径异常

根据需求选择合适的压缩命令bash

1.一、shutil.make_archive压缩后,unzip解压

1.二、zip压缩后unzip解压

2、zip压缩后使用unzip解压后带有绝对路径

去掉绝对路径的方法:

cd到被压缩的文件夹下面 用 && 链接zip压缩命令加密

os.system('cd ' + dst + ' && zip -q -r -m -o ' + 'TYLivingRoom.zip ' + '*')
复制代码

基本操做

1、压缩

1.一、shutil.make_archive

语法

def make_archive(base_name,
                 format,
                 root_dir=None,
                 base_dir=None,
                 verbose=0,
                 dry_run=0,
                 owner=None,
                 group=None,
                 logger=None):
复制代码

参数

参数 做用
base_name 建立的目标文件名,包括路径,减去任何特定格式的扩展
format 压缩包格式。”zip”, “tar”, “bztar”或”gztar”中的一个
root_dir 打包时切换到的根路径。也就是说,开始打包前,会先执行路径切换,切换到root_dir所指定的路径。默认值为当前路径
base_dir 开始打包的路径。也就是说,该命令会对base_dir所指定的路径进行打包,默认值为 root_dir ,即打包切换后的当前目录。亦可指定某一特定子目录,从而实现打包的文件包含此统一的前缀路径
owner 建立tar包时使用,默认为用户当前的 owner
group 建立tar包时使用,默认为用户当前的 group

1.二、zip

语法

zip -r test.zip *spa

参数

参数 做用
-q 表示不显示压缩进度状态
-r 表示子目录子文件所有压缩为zip。这部比较重要,否则的话只有something这个文件夹被压缩,里面的没有被压缩进去
-e 表示你的压缩文件须要加密,终端会提示你输入密码的
-m 表示压缩完删除原文件
-o 表示设置全部被压缩文件的最后修改时间为当前压缩时间

2、解压

1.一、shutil.unpack_archive

import shutil
shutil.unpack_archive('Python-3.3.0.tgz')
复制代码

1.二、unzip

unzip -o TYLivingRoom.zip -d .
复制代码
相关文章
相关标签/搜索