Убить процесс файла перед удалением с помощью Python - PullRequest
1 голос
/ 11 мая 2019

как убить файловый процесс перед его обнаружением?Я удаляю 200+ файлов, мне нужно приостановить процесс?

У меня есть функция удаления:

    def remove_func(self, temp_url):
        for root, dirs, files in os.walk(temp_url):
            for f in files:
                file_path = os.path.join(root, f)
                try:
                    os.unlink(file_path)
                except PermissionError:
                    pid = subprocess.check_output(['pidof','-s',file_path])
                    os.kill(os.getpgid(pid))
                    # or I put the 'continue' in this exception block if the file is used in other processes 
            for d in dirs:
                if os.path.isdir(os.path.join(root, d)):
                    try:
                        shutil.rmtree(os.path.join(root, d))
                    except PermissionError:
                        continue

Я получаю исключение:

PermissionError: [WinError 32] The process cannot access the file because it is being used by another process:

В моем случае оставленный не удаленный файл имеет расширение .jar.md5.

1 Ответ

0 голосов
/ 03 июля 2019

Так что, кажется, другие процессы могли работать в фоновом режиме, которые вызвали это:

The process cannot access the file because it is being used by another process: ошибка.

Код выше работает нормально.

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