如何自动解压并删除zip?
- 如何解压 → 使用内置模块来实现(shutil.unpack_archive)
- 如何删除zip → 使用内置模块os来实现(os.remove)
- 如何监测zip的出现 → 如何判断某文件是zip(s.split(‘.‘[-1]) / 如何让函数每一秒都执行(while True)
以下代码素材自取:链接:https://pan.baidu.com/s/1t6i5W0jATSdze3sPAe4sNg 提取码:0npb
import os import shutil import time def scan_file(): for f in os.listdir(): #由于这里是当前路径,所以需要把这个代码文件和你要处理的文件放到同一个文件夹里 if f.endswith(‘.zip‘): return f def unzip_it(f): folder_name = f.split(‘.‘)[0] target_path = os.path.join(‘.‘,folder_name) os.makedirs(target_path) shutil.unpack_archive(f,target_path) def delete(f): os.remove(f) time.sleep(2) if __name__ == ‘__main__‘: while True: zip_file = scan_file() if zip_file: unzip_it(zip_file) delete(zip_file) time.sleep(3)
以下代码素材自取:链接:https://pan.baidu.com/s/1PM9vl6LWjevuzqBHoglBzw 提取码:j0g4
# 监测 image 文件夹,如果包含的文件大于等于 5 个,则将这些文件压缩到 archive1.zip 文件中,并删除这些文件。当再次监测到文件多于 5 个的时候,生成 archive2.zip 压缩包,以此类推。 # coding:utf-8 from shutil import make_archive import os import time # 指定需要监测的文件夹 image_path = ‘./image‘ # 指定压缩包存放的文件夹 output_path = ‘./output‘ # 记录生成了多少个压缩包 zip_count = 0 # 利用while True使程序持续运行 while True: files = os.listdir(image_path) # files变量中存储了路径下所有文件的文件名,len()函数可以获取list变量包含多少个元素 # files_count即为路径下的文件数 files_count = len(files) if files_count >= 5: zip_count = zip_count + 1 # 指定压缩包的名称以及路径 zip_name = os.path.join(output_path, ‘archive‘ + str(zip_count)) # 压缩文件 make_archive(zip_name, ‘zip‘, image_path) # 删除压缩过的文件 for f in files: os.remove(os.path.join(image_path, f)) # 休眠1秒,达到每1秒监测一次的效果 time.sleep(1)
原文地址:https://www.cnblogs.com/xiaodai0/p/10309233.html
时间: 2024-10-09 12:21:55