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

使用Python访问SharePoint OneDrive文件夹内容的技术求助

使用Python访问SharePoint文件的有效方案

以下是基于官方Microsoft Graph SDK的可行解决方案,替代你尝试过的过时或有问题的库:

步骤1:安装依赖

使用官方维护的SDK包:

pip install msgraph-sdk azure-identity

步骤2:Azure AD应用配置

  1. 在Azure门户注册一个应用程序,获取租户ID、客户端ID、客户端密钥。
  2. 为应用添加应用权限:Files.Read.All或Sites.Read.All,并要求管理员完成权限同意。

步骤3:代码实现

认证与客户端初始化

from azure.identity import ClientSecretCredential
from msgraph import GraphServiceClient
from msgraph.generated.drives.item.items.item.content.content_request import ContentRequest

# 替换为你的实际参数
TENANT_ID = "your-tenant-id"
CLIENT_ID = "your-client-id"
CLIENT_SECRET = "your-client-secret"
SITE_DOMAIN = "your-sharepoint-domain.sharepoint.com"
SITE_PATH = "sites/your-site-name"
FOLDER_PATH = "/Shared Documents/TargetFolder"

获取文件列表与内容

# 初始化认证与Graph客户端
credential = ClientSecretCredential(TENANT_ID, CLIENT_ID, CLIENT_SECRET)
client = GraphServiceClient(credential)

# 获取目标SharePoint站点
site = client.sites.by_site_id(f"{SITE_DOMAIN}:/{SITE_PATH}:").get()

# 获取站点默认文档库驱动器
drive = client.sites.by_site_id(site.id).drive.get()

# 获取指定文件夹下的所有项
folder_items = client.drives.by_drive_id(drive.id).root.item_with_path(FOLDER_PATH).children.get()

# 遍历文件并输出名称与内容
for item in folder_items.value:
    if item.file:
        print(f"文件名: {item.name}")
        # 获取文件内容
        content_req = ContentRequest(
            request_adapter=client._request_adapter,
            path_parameters={"driveId": drive.id, "itemId": item.id}
        )
        content = content_req.get()
        # 文本文件直接解码,二进制文件可保存到本地
        print(f"文件内容: {content.decode('utf-8')}\n")

可选:本地开发的设备码认证

如果不想使用客户端密钥,适合个人本地调试:

from azure.identity import DeviceCodeCredential

credential = DeviceCodeCredential(CLIENT_ID, TENANT_ID)

关于你尝试过的方法说明

  • pysharepoint:第三方非官方库,维护不活跃,登录逻辑易出问题,不推荐使用。
  • msgraph_core导入失败:该包是底层依赖,官方现在推荐使用封装更完善的msgraph-sdk,无需直接操作底层类。
  • onedrivesdk:已被Microsoft Graph SDK完全替代,官方停止维护,属于过时方案。

内容的提问来源于stack exchange,提问作者Antanas Žilinskas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 01:01:23