python爬虫——文件压缩

python爬虫——文件压缩

import os
import re
import zipfile
#压缩文件

'''
压缩文件夹内的各个文件操作,
传参需要压缩的文件夹位置path01
压缩文件的保存位置path02
文件压缩的实质时创建一个zip文件然后把选压缩的内容写入zip文件
'''
def zip(path01,path02):
    path1 = path01 + '\\'
    # 读取文件夹内的所有文件
    files = os.listdir(path1)
    for file in files:
        print(file+'开始压缩')
        # 提取文件名称。按照需求,如果不是.mp4需要更改,或者干脆直接用文件名
        name = re.findall(r'(.*?).mp4',file)[0]
        # 创建压缩文件,并设置保存名称
        zipf = zipfile.ZipFile(path02+file+'.zip', 'w')
        # 找到需要压缩的文件,第一个参数时文件位置,第二个参数时只压缩的内容
        zipf.write(path1+file,file)
        print(file + '压缩结束')
'''压缩文件夹'''
def zip_file(path01,path02):
    path1 = path01 + '\\'
    # 读取文件夹内的所有文件夹
    files = os.listdir(path1)
    for file in files:
        print(file + '开始压缩')
        # 创建压缩文件并设置压缩文件的保存名称
        zipf = zipfile.ZipFile(path02 + file + '.zip', 'w')
        # 读取目录中的文件
        for file1 in os.listdir(path1+file):
            # os.path.join()路径拼接,此处可以直接自己拼接
            zipf.write(os.path.join(path1 + file, file1), file1)
        print(file + '压缩结束')

'''
zipfile库不支持压缩文件时加密,
采用7z压缩软件实现压缩和加密(需要先下载7z软件)
path01:需要压缩文件的目录
path02:压缩文件的输出目录
'''
def zip_pwd(path01):
    # 设置7z应用程序的路径
    z_file = 'D:\\安装\\7-Zip\\7z.exe'
    # 设置密码
    pwd = '125475'
    path1 = path01 + '\\'
    # 读取文件夹内的所有文件
    files = os.listdir(path1)
    # 对单个文件进行加密
    for file in files:
        print(file + '开始压缩')
        # 提取文件名称。按照需求,如果不是.mp4需要更改,或者干脆直接用文件名
        name = re.findall(r'(.*?).txt', file)[0]
        # 拼接cmd命令
        cmd = z_file+' a '+ name +'.zip -p"125475" -y '+ path1+file
        # # 执行cmd命令
        # a=os.system('cd D:\\test1\\')
        os.popen(cmd)
        print(file + '压缩完成')


'''解压文件'''
def change_zip(path01,path02):
    path1 = path01 + '\\'
    # 读取文件夹内的所有文件
    files = os.listdir(path1)
    for file in files:
        # 加载需要解压的压缩文件
        zfile = zipfile.ZipFile(path1+file)  # 要解压缩的压缩包
        # 解压操作,解压到path02
        zfile.extractall(path02)
        # 有密码
        # zfile.extractall(path02,'Pwd'


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值