文件操作
你可以尝试以下几种方法来解决 PermissionError
:
-
以管理员身份运行脚本:右键点击你的 Python 脚本,选择“以管理员身份运行”(或者任务计划程序选择最高权限运行)。
-
检查文件权限:右键点击该文件夹,选择“属性”,在“安全”选项卡中检查并修改权限,确保你有删除的权限。
-
关闭相关程序:确保没有其他程序正在使用该文件夹,特别是一些后台进程。
-
使用
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}')
使用说明:
- 将代码保存为
delete_scoped_dirs.py
。 - 在命令行中以管理员身份运行该脚本:
python delete_scoped_dirs.py
。 - 查看当前目录下的
delete_folder.log
文件,以查看日志信息。
这个脚本会遍历指定父目录下的所有文件夹,删除所有以 scoped_dir
开头的文件夹及其内容。
本文作者: 永生
本文链接: https://yys.zone/detail/?id=360
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
评论列表 (0 条评论)