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)

猜你喜欢

转载自blog.csdn.net/qq_43200143/article/details/114102223