You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python创建多级目录后如何为后3个子目录设置权限

解决Python多级目录创建并批量设置权限的问题

你需要创建C://user//Folder1//Folder2//Folder3//Folder4//Folder5//,其中C://user//Folder1//Folder2已存在,要求给新创建的Folder3、Folder4、Folder5都设置权限,且不改变当前位于C://user1//python_script的工作目录。原脚本仅能给最末级的Folder5设置权限,因为os.makedirs一次性创建所有缺失目录后,只对最终目录执行了权限修改操作。

以下是两种可行的解决方案:

方法一:使用os模块逐个创建并设置权限

通过遍历需要创建的子目录层级,逐个创建目录并立即设置权限,全程使用绝对路径操作,不会改动工作目录。

import os

# 已存在的基础目录路径
base_dir = "C://user//Folder1//Folder2//"
# 需要创建的子目录层级
new_subdirs = ["Folder3", "Folder4", "Folder5"]

current_path = base_dir
for subdir in new_subdirs:
    current_path = os.path.join(current_path, subdir)
    if not os.path.exists(current_path):
        os.mkdir(current_path)
        # 创建后直接设置全权限
        os.chmod(current_path, 0o777)

方法二:使用pathlib模块(Python 3.4+)实现更直观的路径操作

pathlib提供了面向对象的路径处理方式,代码更简洁易读,同样能逐个创建目录并设置权限:

from pathlib import Path

base_dir = Path("C://user//Folder1//Folder2//")
new_subdirs = ["Folder3", "Folder4", "Folder5"]

current_path = base_dir
for subdir in new_subdirs:
    current_path /= subdir
    if not current_path.exists():
        current_path.mkdir()
        current_path.chmod(0o777)

补充说明

  • 0o777权限在Windows系统中作用有限,Windows采用ACL权限模型,若需要更精细的权限控制,需借助win32api等库处理;基础场景下0o777可满足读写执行的权限需求。
  • 确保脚本运行时拥有足够的系统权限,否则可能出现创建目录或修改权限失败的情况。

内容的提问来源于stack exchange,提问作者Susan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 00:50:32