Как легко удалить файлы только для чтения? - PullRequest
0 голосов
/ 29 июня 2019

Я хочу, чтобы мой код удалял все содержимое временных папок и папок предварительной выборки, однако некоторые файлы доступны только для чтения, поэтому код возвращает ошибку 5: доступ запрещен.

def deletetemp():
    try:
        for root2, dirs, files in os.walk(r'C:\Windows\Temp'):
            for f in files:
                os.unlink(os.path.join(root2, f))
            for d in dirs:
                shutil.rmtree(os.path.join(root2, d))
        for root2, dirs, files in os.walk(r'C:\Windows\Prefetch'):
            for f in files:
                os.unlink(os.path.join(root2, f))
            for d in dirs:
                shutil.rmtree(os.path.join(root2, d))
        for root2, dirs, files in os.walk(r'C:\Users\*myusername*\AppData\Local\Temp'):
            for f in files:
                os.unlink(os.path.join(root2, f))
            for d in dirs:
                shutil.rmtree(os.path.join(root2, d))
        x.configure(text="Temporary/Prefetch files deleted!")
    except Exception as e:
        x.configure(text=str(e))
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:/Users/*myusername*/.PyCharmCE2019.1/config/scratches/scratch.py", line 10, in deletetemp
    os.unlink(os.path.join(root2, f))
PermissionError: [WinError 5] Access is denied: 'C:\\Windows\\Temp\\vcredist_x86.exe'

Это то место, откуда я получил код.

Если вы еще не заметили, я нуб в коде. Пожалуйста, попробуйте дать простые ответы (хотя, конечно, не делайте код полностью для меня). Кроме того, я сам искал ответ, но не смог найти. Если где-то есть, просто перенаправьте меня! Я посмотрю на это и попробую сделать из этого что-нибудь.

1 Ответ

1 голос
/ 29 июня 2019

Как уже упоминалось здесь попробуйте изменить разрешения для файла, используя os.chmod(path_, stat.S_IWRITE) и удалите его

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