python对文件进行tar和gz格式的压缩和解压缩

tar,gz压缩

tar gz文件的解压

 

tar gz文件的解压的改进(上一个会在本地多保存一个文件,改进的创建临时文件夹不会多保存)

原始代码:

import gzip

import os

import tarfile

import shutil

import tempfile

def un_gz(gzip_file_name):

# 解压gzip文件到临时目录,并返回解压后的文件名

with tempfile.NamedTemporaryFile(delete=False) as tmp_file:

with gzip.GzipFile(gzip_file_name, 'rb') as g_file:

shutil.copyfileobj(g_file, tmp_file)

tmp_file_name = tmp_file.name

return tmp_file_name

def un_tar(tar_file_name, dest_path):

# 解压tar文件到指定目录

with tarfile.open(tar_file_name) as tar:

tar.extractall(path=dest_path)

# gzip压缩的tar文件名

gzip_tar_file = "/home/zee001-w/Downloads/interface/interfaces_x86_64.tar.gz"

# 解压gzip部分到临时文件

tmp_tar_file = un_gz(gzip_tar_file)

# 创建解压后的目标目录

dest_dir1 = os.path.splitext(gzip_tar_file)[0]

dest_dir = os.path.splitext(dest_dir1 )[0]

print(dest_dir)

if not os.path.exists(dest_dir):

os.makedirs(dest_dir)

# 解压tar部分到目标目录

un_tar(tmp_tar_file, dest_dir)

# 清理临时tar文件

os.remove(tmp_tar_file)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值