python-----自動解壓並刪除zip文件


如何自動解壓並刪除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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM