如何在Python中获取SharePoint文件的创建者/修改者名称?
Shareplum默认返回的文件属性不包含创建者和修改者信息,你需要显式指定要获取的字段(Author对应创建者,Editor对应修改者),这两个字段会返回包含用户名称的对象,直接提取Title属性即可拿到用户名。
实现步骤及代码示例
- 连接到SharePoint站点与目标文档库(这部分你已实现,完整代码供参考)
from shareplum import Site from shareplum.site import Version # 替换为你的SharePoint信息 site_url = "https://your-sharepoint-domain/sites/your-site" username = "your-account@domain.com" password = "your-password" # 建立站点连接 site = Site(site_url, version=Version.v365, auth=(username, password)) # 获取目标文档库(替换为你的库名称,默认是"Documents") doc_library = site.List("Documents") # 获取目标文件夹(替换为你的文件夹路径,根文件夹可直接用"Shared Documents") target_folder = doc_library.Folder("Shared Documents/Your-Target-Folder")
- 指定字段获取文件详情并提取创建者/修改者
# 获取文件夹内所有文件,显式指定需要的字段 file_items = target_folder.get_items(fields=["FileLeafRef", "Created", "Modified", "Author", "Editor"]) # 遍历处理每个文件 for item in file_items: file_name = item["FileLeafRef"] # 提取创建者名称,判断字段是否存在避免报错 created_by = item["Author"]["Title"] if "Author" in item else "未知" # 提取修改者名称 modified_by = item["Editor"]["Title"] if "Editor" in item else "未知" print(f"文件名: {file_name}") print(f"创建者: {created_by}") print(f"修改者: {modified_by}") print(f"创建时间: {item['Created']}") print(f"修改时间: {item['Modified']}") print("-" * 30)
注意事项
- 确保文档库名称和文件夹路径正确,SharePoint路径区分大小写
- 如果
Author/Editor返回用户ID而非对象,可尝试在get_items中添加expand=["Author", "Editor"]参数(部分环境需要) - 若遇权限问题,检查账号是否有读取文档库元数据的权限
内容的提问来源于stack exchange,提问作者Rishabh
相关产品推荐
相关产品推荐

