异步文件删除

时间:2019-07-05 14:42:56

标签: python-3.x multithreading multiprocessing

我有一个调用批处理文件的脚本。执行此文件时,它会在很长一段时间内创建大量文本文件。我试图同时删除大多数文件(仅删除具有特定字符串的文件),以避免不必要地填充磁盘内存,并使输出后的文件夹导航更加实用。

我正在尝试使用多处理程序,但是无法并行运行bat文件和delete函数。蝙蝠结束后,便立即开始删除。

import os
import pathlib

def deleteOutput(script_folder):
    for filename in os.listdir(script_folder):
        if filename.endswith('.BAT_OUTPUT'):
            os.unlink(os.path.join(script_folder,filename))

def run(script_folder):
    file_to_open = script_folder / "run.bat"
    os.system(str(file_to_open))

if __name__=="__main__":

    script_folder = pathlib.Path(__file__).parent

    p = multiprocessing.Process(name='p', target=run(script_folder))
    p1 = multiprocessing.Process(name='p1', target=deleteOutput(script_folder))

    p.start()
    p1.start()

基本上,这个想法是让批处理文件运行,并在后台执行另一个过程,不断在文件夹中进行迭代以删除所有所需文件。

谢谢!

0 个答案:

没有答案