python压缩文件tar_python中zipfile、tarfile压缩文件模块的使用

ZipFile

压缩单个文件

import zipfile

import os

with zipfile.ZipFile('log.zip', 'w') as z:

z.write('log.log')

解压文件

with zipfile.ZipFile('log.zip', 'r') as z:

print(z.namelist()) # 查看压缩包中的文件列表

print(z.read(z.namelist()[0])) # 读出来压缩包中的第一个文件的内容打印到屏幕,也可保存到文件中

# z.extractall('aaa') # 解压,可设置解压路径

# z.extract('log.log') # 解压,可选择解压某个文件

z.extractall() # 解压全部

压缩某个目录下所有文件

def compress_file(zipfilename, dirname): # zipfilename是压缩包名字,dirname是要打包的目录

if os.path.isfile(dirname):

with zipfile.ZipFile(zipfilename, 'w') as z:

z.write(dirname)

else:

with zipfile.ZipFile(zipfilename, 'w') as z:

for root, dirs, files in os.walk(dirname):

for single_file in files:

if single_file != zipfilename:

filepath = os.path.join(root, single_file)

z.write(filepath)

compress_file('a.zip', '.') # 执行函数

添加文件到已有的zip包中

def addfile(zipfilename, dirname):

if os.path.isfile(dirname):

with zipfile.ZipFile(zipfilename, 'a') as z:

z.write(dirname)

else:

with zipfile.ZipFile(zipfilename, 'a') as z:

for root, dirs, files in os.walk(dirname):

for single_file in files:

if single_file != zipfilename:

filepath = os.path.join(root, single_file)

z.write(filepath)

addfile('a.zip', 'test.txt')

查看压缩包中的文件

def viewfile(zipfilename):

with zipfile.ZipFile(zipfilename, 'r') as z:

print(z.namelist())

viewfile('a.zip')

TarFile

压缩文件

import tarfile

import os

with tarfile.open('a.tar', 'w') as tar:

tar.add('log.log', arcname='log.log')

tar.add('test.txt', arcname='test.txt')

解压文件

with tarfile.open('a.tar', 'r') as tar:

print(tar.getmembers()) # 查看压缩包内文件成员

# tar.extract('test.txt') # 可选择解压某个文件

# tar.extractall('ccc') # 可设置解压路径

tar.extractall() # 解压全部

压缩某个目录下所有文件

def compress_file(tarfilename, dirname): # tarfilename是压缩包名字,dirname是要打包的目录

if os.path.isfile(dirname):

with tarfile.open(tarfilename, 'w') as tar:

tar.add(dirname)

else:

with tarfile.open(tarfilename, 'w') as tar:

for root, dirs, files in os.walk(dirname):

for single_file in files:

# if single_file != tarfilename:

filepath = os.path.join(root, single_file)

tar.add(filepath)

compress_file('test.tar', 'test.txt')

compress_file('t.tar', '.')

添加文件到已有的tar包中

def addfile(tarfilename, dirname): # tarfilename是压缩包名字,dirname是要打包的目录

if os.path.isfile(dirname):

with tarfile.open(tarfilename, 'a') as tar:

tar.add(dirname)

else:

with tarfile.open(tarfilename, 'a') as tar:

for root, dirs, files in os.walk(dirname):

for single_file in files:

# if single_file != tarfilename:

filepath = os.path.join(root, single_file)

tar.add(filepath)

addfile('t.tar', 'ttt.txt')

addfile('t.tar', 'ttt')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值