如何使用Python 3将文件上传至Windows SharePoint?
1. 安装依赖库
首先安装专门用于操作SharePoint的Python库:
pip install office365-rest-python-client
2. 准备必要信息
你需要提前获取以下信息:
- SharePoint站点的完整URL(例如:
https://your-domain.sharepoint.com/sites/your-team-site) - 目标文档库的名称(默认通常是
Documents) - 目标子文件夹路径(如果要上传到子目录,比如
Shared Files/Uploads,根目录则留空) - 你的Office 365账号和密码(若开启MFA,需用应用权限方式,见下文)
3. 上传代码示例
以下是直接可用的上传脚本,替换配置信息即可:
from office365.sharepoint.client_context import ClientContext from office365.runtime.auth.user_credential import UserCredential import os # 替换为你的配置 site_url = "https://your-domain.sharepoint.com/sites/your-site" username = "your-work-account@your-domain.com" password = "your-password" target_doc_lib = "Documents" target_subfolder = "TestFiles" # 上传到该子文件夹,无则设为"" local_file = os.path.join(os.environ['USERPROFILE'], 'Desktop', 'test.txt') # Windows桌面路径 # 初始化SharePoint客户端 ctx = ClientContext(site_url).with_credentials(UserCredential(username, password)) # 定位目标文件夹 if target_subfolder: folder_path = f"{target_doc_lib}/{target_subfolder}" else: folder_path = target_doc_lib target_folder = ctx.web.get_folder_by_server_relative_url(folder_path) # 上传文件 with open(local_file, 'rb') as f: uploaded_file = target_folder.upload_file(os.path.basename(local_file), f).execute_query() print(f"上传完成,文件地址:{uploaded_file.serverRelativeUrl}")
特殊情况处理
开启MFA(多因素认证)的场景
账号密码方式无法绕过MFA,需改用应用权限:
- 在Azure AD中注册应用,授予
Sites.FullControl.All的SharePoint权限 - 使用以下代码替换认证部分:
from office365.runtime.auth.client_credential import ClientCredential client_id = "你的应用ID" client_secret = "你的应用密钥" ctx = ClientContext(site_url).with_credentials(ClientCredential(client_id, client_secret))
自动创建目标文件夹
如果不确定目标文件夹是否存在,可以添加创建逻辑:
# 尝试创建文件夹,已存在则忽略异常 try: target_folder = ctx.web.folders.add(folder_path).execute_query() print(f"已创建文件夹:{folder_path}") except Exception: pass
内容的提问来源于stack exchange,提问作者Leon48912
相关产品推荐
相关产品推荐

