做团队文件分配时,是不是总需要手动给每个人建文件夹再设置权限?比如给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批量管理 #周四高效运维
本站是社保查询公益性网站链接,数据来自各地人力资源和社会保障局,具体内容以官网为准。
定期更新查询链接数据 苏ICP备17010502号-11