python批量删除文件,多线程版【五】

import os
from queue import Queue
import threading
import datetime
def read_directory(directory_name):
    wenjian=[]
    ts_queue = Queue(10000)
    for filename in os.listdir(directory_name):
        path_now = os.path.join(directory_name, filename)
        a= filename.split(".")[-1]
        if str(a) in ["Ts","ts","TS","txt","m3u8","key"]:
            wenjian.append(path_now)
    for i in range(len(wenjian)):
        ts_queue.put(wenjian[i])
    return ts_queue


def shanchu(ts_queue):
    while not ts_queue.empty():
        neirong = ts_queue.get()
        try:
            os.remove(neirong)
            print("删除成功!")
        except(FileNotFoundError):
            print("删除失败")
                
if __name__ == '__main__':
    t = input('请输入删除Ts目录:')
    #read_directory(t)
    start = datetime.datetime.now().replace(microsecond=0)
    s = read_directory(t)
    threads = []
    for i in range(100):
        t = threading.Thread(target=shanchu, name='th-' + str(i), kwargs={'ts_queue': s})
        threads.append(t)
    for t in threads:
        t.start()
    for t in threads:
        t.join()
    end = datetime.datetime.now().replace(microsecond=0)
    print('删除耗时:' + str(end - start))

 

posted @ 2020-12-08 16:20  凹凸曼大人  阅读(770)  评论(0)    收藏  举报