Асинхронное удаление файлов - PullRequest
0 голосов
/ 05 июля 2019

У меня есть скрипт, который вызывает командный файл.Когда этот файл выполняется, он создает огромное количество текстовых файлов в течение длительного периода времени.Я пытаюсь удалить большинство этих файлов (только файлы с определенной строкой) одновременно, чтобы избежать ненужного заполнения дисковой памяти и сделать навигацию по папкам после вывода более практичной.

Я пытаюсь использоватьмногопроцессорная, но я не могу не запускать файл bat и функцию удаления параллельно.Сразу после того, как летучая мышь закончилась, начинается удаление.

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()

По сути, идея состоит в том, чтобы запустить пакетный файл, а в фоновом режиме - другой процесс, постоянно повторяющийся в папке для удаления всех требуемых файлов.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...