python3文件操作,压缩包的处理学习案例两则

 

目录

一、自动解压压缩包,删除解压后的压缩包

二、任务:实时监测一个文件夹,如果包含的文件大于5个,压缩到一个文件夹中,并删除这些文件

 


 

一、自动解压压缩包,删除解压后的压缩包

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# scan、unzip、delete zip、detect
# 在运行时新建一个文件还是会出错   复制过来的是没问题的
import os
import shutil
import time

path = "D:/XXXXX/"  #路径  拼接的时候注意/

def scan_file():
    files = os.listdir(path)
    for f in files:
        if f.endswith('.zip'):
            return f

def unzip_it(f):
    folder_name = f.split('.')[0]
    target_path = path + folder_name
    os.makedirs(target_path)
    shutil.unpack_archive(path+f, target_path)  #文件要加上路径


def delete(f):
    os.remove(path+f)  #这里也是,删除文件需要路径


while True:
    #持续观察有没有文件,但是大部分时间是没有压缩文件的
    #可能会返回None 或者报错什么的,所以加一个判断
    zip_file = scan_file()
    print(zip_file)
    if zip_file:
        unzip_it(zip_file)
        delete(zip_file)
    time.sleep(3)  #每3s尝试一次

 

二、任务:实时监测一个文件夹,如果包含的文件大于5个,压缩到一个文件夹中,并删除这些文件

 

当再次检测到文件多于5个时,生成第二个压缩包 命名archive+压缩包次序

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Autor:tangzicheng
# 任务:检测一个文件夹,如果包含的文件大于5个,压缩到一个文件夹中,并删除这些文件
# 当再次检测到文件多于5个时,生成第二个压缩包
# 命名archive+压缩包次序
from shutil import make_archive
import os
import time
file_path = "G:/寒假资源/书/pdf"
output_path = "G:/寒假资源/书/test"  #不能和文件在一个文件夹,否则下次压缩会把压缩包一起压缩
zip_count = 0 #计算压缩包的数目(可以用来取名

while True:
    files = os.listdir(file_path)
    files_count = len(files) #计算文件数目
    if files_count >= 5:
        zip_count = zip_count + 1
        # 指定压缩包的名称以及路径
        zip_name = output_path + '/' + 'archive' + str(zip_count)
        # 压缩文件
        make_archive(zip_name,'zip', file_path)
        # 删除压缩过的文件
        for f in files:
            os.remove(file_path+'/'+f)

    # 休眠1s,达到每1秒检测一次的效果
    time.sleep(1)
    print(1)

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值