import os, zipfile
defmake_zip
(source_dir, output_filename)
: zipf = zipfile.zipfile(output_filename,
'w')
pre_len =
len(os.path.dirname(source_dir)
)for parent, dirnames, filenames in os.walk(source_dir)
:for filename in filenames:
pathfile = os.path.join(parent, filename)
arcname = pathfile[pre_len:
].strip(os.path.sep)
#相對路徑
zipf.write(pathfile, arcname)
zipf.close(
)
import os, tarfile
#如果只打包不壓縮,將"w:gz"引數改為"w:"或"w"即可。
defmake_targz
(output_filename, source_dir)
:with tarfile.
open
(output_filename,
"w:gz"
)as tar:
tar.add(source_dir, arcname=os.path.basename(source_dir)
)#逐個新增檔案打包,未打包空子目錄。可過濾檔案。
#如果只打包不壓縮,將"w:gz"引數改為"w:"或"w"即可。
defmake_targz_one_by_one
(output_filename, source_dir)
: tar = tarfile.
open
(output_filename,
"w:gz"
)for root,
dir,files in os.walk(source_dir)
:for
file
in files:
pathfile = os.path.join(root,
file
) tar.add(pathfile)
tar.close(
)
壓縮本地資料夾測試;
zip壓縮耗時0.12秒;
tar壓縮耗時0.14秒;
tar.gz 壓縮耗時 0.88秒;
資料僅供引數。
php打包資料夾
php自帶ziparchive 類,打包就靠這個了。最簡單的就是打包單檔案而非資料夾,先從簡單的來。先確保zip擴充套件已載入,確保打包的原始檔 夾 存在,否則退出 if extension loaded zip file exists source zip new ziparchive if zi...
Linux下壓縮某個資料夾(資料夾打包)
tar zcvf home xahot.tar.gz xahot tar zcvf 打包後生成的檔名全路徑 要打包的目錄 例子 把 xahot資料夾打包後生成乙個 home xahot.tar.gz的檔案。zip 壓縮方法 壓縮當前的資料夾 zip r xahot.zip r表示遞迴 zip 引數 ...
LINUX下壓縮某個資料夾(資料夾打包)
tar zcvf home xahot.tar.gz xahot tar zcvf 打包後生成的檔名全路徑 要打包的目錄 例子 把 xahot資料夾打包後生成乙個 home xahot.tar.gz的檔案。zip 壓縮方法 壓縮當前的資料夾 zip r xahot.zip r表示遞迴 zip 引數 ...