1.普通用户删除管理员权限文件

你可以尝试以下几种方法来解决 PermissionError

  1. 以管理员身份运行脚本:右键点击你的 Python 脚本,选择“以管理员身份运行”(或者任务计划程序选择最高权限运行)。

  2. 检查文件权限:右键点击该文件夹,选择“属性”,在“安全”选项卡中检查并修改权限,确保你有删除的权限。

  3. 关闭相关程序:确保没有其他程序正在使用该文件夹,特别是一些后台进程。

  4. 使用 os.chmod:在删除之前,可以使用 os.chmod 修改文件夹权限:

    import os
    import stat
    
    path = 'C:\\Program Files (x86)\\scoped_dir364_389623325'
    os.chmod(path, stat.S_IWRITE)  # 使其可写
    os.rmdir(path)  # 删除文件夹

要删除所有以 scoped_dir 开头的文件夹,可以使用 os.listdir() 列出目录中的所有文件夹,然后筛选出符合条件的文件夹进行删除。以下是修改后的代码示例:

import os
import stat
import logging
import shutil

# 配置日志
logging.basicConfig(
    filename='delete_folder.log',  # 日志文件名
    level=logging.DEBUG,  # 日志级别
    format='%(asctime)s - %(levelname)s - %(message)s',  # 日志格式
)

# 指定父目录
parent_path = 'C:\\Program Files (x86)'

try:
    # 遍历父目录中的所有文件夹
    for folder_name in os.listdir(parent_path):
        if folder_name.startswith('scoped_dir'):
            folder_path = os.path.join(parent_path, folder_name)
            
            # 使文件夹可写
            os.chmod(folder_path, stat.S_IWRITE)
            logging.info(f'成功更改权限:{folder_path}')
            
            # 删除文件夹及其内容
            shutil.rmtree(folder_path)
            logging.info(f'成功删除文件夹及其内容:{folder_path}')
            
except PermissionError as e:
    logging.error(f'权限错误:{e}')
except FileNotFoundError as e:
    logging.error(f'文件未找到:{e}')
except Exception as e:
    logging.error(f'发生错误:{e}')

使用说明:

  1. 将代码保存为 delete_scoped_dirs.py
  2. 在命令行中以管理员身份运行该脚本:python delete_scoped_dirs.py
  3. 查看当前目录下的 delete_folder.log 文件,以查看日志信息。

这个脚本会遍历指定父目录下的所有文件夹,删除所有以 scoped_dir 开头的文件夹及其内容。