框架思路
1、如何解压?
使用内置模块来实现 shutil.unpack_archive
2、如何删除zip文件?
使用内置模块OS来实现 os.remove
3、如何监测zip文件的出现?
4、如何判断某文件是zip、
5、如何让函数每一秒都执行 While True
注释:scan 扫描 unzip 解压 delete 删除
import os
import shutil
import logging
def scan_file(): # 定义函数用于扫描文件
files = os.listdir() # 获取当前路径下的所有文件
for f in files:
if f.endswith('.zip'):
return f # 遍历文件列表,返回以'.zip'结尾的文件名
def unzip_it(f): # 定义函数用于解压文件
folder_name = os.path.splitext(f)[0] # 获取文件名(去除扩展名后的名称)
target_path = './' + folder_name # 创建解压后保存的路径
os.makedirs(target_path, exist_ok=True) # 如果路径不存在,则创建该路径
try:
shutil.unpack_archive(f, target_path) # 使用shutil模块解压指定文件并存储到指定路径
except shutil.ReadError:
logging.exception("Error in unpacking archive") # 如果解压失败,则记录错误日志
def delete(f): # 定义函数用于删除原始压缩文件
try:
os.remove(f) # 使用os模块删除指定文件
except FileNotFoundError:
logging.exception("Error in deleting file") # 如果删除失败,则记录错误日志
while True:
zip_file = scan_file()
if zip_file:
unzip_it(zip_file) # 程序主逻辑,循环获取并解压指定路径下的zip文件
delete(zip_file) # 解压成功后删除原始文件