python--zipfile模块

import zipfile
import os

#压缩单个文件
import zipfileimport 
oswith zipfile.ZipFile('test.zip', 'w') as z:
    z.write('log.txt')  
	
#压缩某个目录下所有文件
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):        #这里用到了os.walk遍历目录下的文件,详情参考os的walk方法
                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')

#解压
with zipfile.ZipFile('test.zip', 'r') as z:
    print(z.namelist())                                     # 查看压缩包中的文件列表
    # print(z.read(z.namelist()[0]))                              # 读出来压缩包中的第一个文件的内容打印到屏幕,也可保存到文件中
    z.extractall('C:\\Users\\Administrator\\PycharmProjects\\aaa')                         # 解压,可设置解压路径
    # z.extract('log.txt')                                   # 解压,可选择解压压缩包中的某个文件
    #z.extractall()                                       # 解压全部
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值