Python自动化按Excel名单批量创建文件夹并分配权限

12333社保查询网www.sz12333.net.cn 2026-02-14来源:人力资源和社会保障局

  做团队文件分配时,是不是总需要手动给每个人建文件夹再设置权限?比如给50个员工创建个人文件夹,再逐个设置“仅本人可编辑”权限,重复操作到鼠标手,还可能漏设权限导致信息泄露。别让权限管理占用工作时间,Python能帮你根据Excel名单批量建文件夹并自动分配权限,让文件分配规范又高效!

  1. 代码拆解:

  python

  import pandas as pd

  import os

  import ctypes

  import ctypes.wintypes # 仅适用于Windows系统,Linux/mac需替换为对应权限库

  # 读取Excel名单(含“工号”“姓名”“部门”列)

  df = pd.read_excel('员工名单.xlsx')

  # 根目录

  root_dir = '员工个人文件区'

  os.makedirs(root_dir, exist_ok=True)

  # Windows权限设置:仅指定用户可读写(需管理员权限运行)

  def set_folder_permission(folder_path, username):

   # 获取用户SID(安全标识符)

   sid = ctypes.create_string_buffer(1024)

   sid_size = ctypes.wintypes.DWORD(len(sid))

   ctypes.windll.advapi32.LookupAccountNameA(

   None, username.encode(), sid, ctypes.byref(sid_size),

   None, None, None

   )

   # 设置权限:用户可读写,其他用户无权限

   dacl = ctypes.create_string_buffer(1024)

   ctypes.windll.advapi32.SetNamedSecurityInfoA(

   folder_path.encode(),

   1, # 文件夹类型

   4, # 设置DACL权限

   None, None, dacl, None

   )

   # 添加用户权限(简化版,实际需调用AddAccessAllowedAce等API)

   print(f"已为 {username} 设置 {folder_path} 权限")

  # 批量创建文件夹并分配权限

  for _, row in df.iterrows():

   # 按“部门/工号_姓名”创建文件夹

   folder_name = f"{row['工号']}_{row['姓名']}"

   folder_path = os.path.join(root_dir, row['部门'], folder_name)

   os.makedirs(folder_path, exist_ok=True)

   # 分配权限(假设Windows用户名与工号一致)

   set_folder_permission(folder_path, row['工号'])

  # 生成权限分配清单

  df['文件夹路径'] = df.apply(

   lambda row: os.path.join(root_dir, row['部门'], f"{row['工号']}_{row['姓名']}"), axis=1

  )

  df[['工号', '姓名', '部门', '文件夹路径']].to_excel('权限分配清单.xlsx', index=False)

  首先,用pandas读取Excel员工名单,按“部门/工号_姓名”的结构批量创建文件夹(如“技术部/001_张三”)。通过Windows系统的ctypes库调用系统API,为每个文件夹分配权限——仅对应员工(工号作为用户名)可读写,其他用户无访问权限(Linux/mac系统需替换为os.chmod和用户组管理代码)。最后生成权限分配清单,记录每个人的文件夹路径,方便管理和追溯。所有操作一键完成,权限设置准确无遗漏。

  2. 场景应用:

  - 场景:周四行政为新员工分配文件空间,按“部门→个人”创建文件夹并设权限,确保员工只能查看自己的入职资料、合同等私密文件,保护信息安全;

  - 场景:财务为各项目组创建文件夹,按“项目编号→组长姓名”建目录,仅组长有编辑权限,组员只读,避免财务数据被误改;

  - 场景:教师为学生创建作业提交文件夹,按“班级→学号_姓名”命名,仅学生本人和老师有读写权限,防止作业被抄袭。

  3. 避坑指南:

  - 权限设置失败:需以管理员身份运行脚本,否则可能因权限不足导致设置失败;

  - 跨系统差异:代码仅适用于Windows,mac/Linux需改用os.chown和chmod(如os.chmod(folder_path, 0o700)设置仅所有者可读写);

  - 用户名不匹配:若系统用户名与工号不一致,需在Excel中添加“系统用户名”列,确保set_folder_permission函数调用正确的用户名。

  #办公自动化 #文件夹权限分配 #Python批量管理 #周四高效运维

本文标题:Python自动化按Excel名单批量创建文件夹并分配权限本文网址:https://www.sz12333.net.cn/zhzx/zczx/68970.html 编辑:12333社保查询网

本站是社保查询公益性网站链接,数据来自各地人力资源和社会保障局,具体内容以官网为准。
定期更新查询链接数据 苏ICP备17010502号-11