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 .
複製代碼
相關文章
相關標籤/搜索