python 用os.walk 遍历文件夹并且将包含访问路径,所含文件,以及实际赋予权限可以访问的人员名单写入dataframe
时间: 2024-05-01 19:20:52 浏览: 123
可以使用以下代码实现:
```python
import os
import pandas as pd
# 设置要遍历的根目录
root_dir = "/path/to/root/directory"
# 初始化 DataFrame
df = pd.DataFrame(columns=["文件路径", "文件名", "权限可访问人员"])
# 遍历目录
for root, _, files in os.walk(root_dir):
for file in files:
file_path = os.path.join(root, file)
# 获取文件权限
file_permission = oct(os.stat(file_path).st_mode)[-3:]
# 获取文件访问控制列表(ACL)
acl = os.getacl(file_path)
# 获取 ACL 中的所有用户
users = [entry[2] for entry in acl if entry[0] == "user"]
# 将数据添加到 DataFrame
df = df.append({"文件路径": file_path, "文件名": file, "权限可访问人员": ",".join(users)}, ignore_index=True)
# 打印 DataFrame
print(df)
```
这段代码会遍历指定的根目录,并将每个文件的路径、文件名、以及具有访问权限的用户列表添加到 DataFrame 中。注意,这段代码使用了 `os.getacl` 函数来获取文件的访问控制列表,该函数仅在 Unix 系统上可用。如果需要在 Windows 系统上运行,需要使用其它方式获取文件权限和访问控制列表。
阅读全文