如何使用 Python 访问和修改 Sharepoint 中的文件
如何使用 Python 访问和修改 Sharepoint 中的文件
列出云上的文件并将文件从本地上传到 MS Sharepoint
Upload and Modify Files in Microsoft Sharepoint using Python
介绍
有时很容易在互联网上找到您要查找的内容,但应用结果可能很困难。本文介绍如何使用 Python SDK 访问 sharepoint,以及如何从 Microsoft Sharepoint 和 Teams Channel 获取访问密钥。然后解释如何在 Microsoft Sharepoint 中列出、上传、修改文件。
工作流程:
- 安装 Office365 Python 客户端
- 从 Microsoft Sharepoint 创建身份验证访问
- 使用钥匙访问
- 列出文件夹
- 列出文件
- 移动文件
- 重新命名文件
- 删除文件
- 上传文件(额外:将数据框上传到 excel 文件)
安装所需的python库
如果要上传excel文件,请安装pandas
$pip 安装熊猫
$pip install Office365-REST-Python-Client
否则,您只需要 Office365-REST-Python-Client。
$pip install Office365-REST-Python-Client
创建凭据以访问 Microsoft 文件夹
让我们首先展示如何从 Microsoft 站点获取访问 ID 和访问密钥以访问应用程序。我们需要授予我们要访问的文件夹的权限,如下面的链接所示。此文件夹区域可以位于 MS Teams 频道或 MS Sharepoint 中的任何位置。
[
使用仅限 SharePoint 应用程序授予访问权限
SharePoint App-Only 是较旧但仍然非常相关的设置应用程序主体的模型。该模型适用于……
docs.microsoft.com
](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly-azureacs)
在浏览器中导航到您的 MS Teams 或 MS Sharepoint 文件夹站点(例如 https://
在如下页面中,点击 Create 按钮创建一个 Client Id 和 Client Secret 并填写剩余信息。
保存表单时,您将看到一个显示以下结果的屏幕。 不要忘记保存客户端 ID 和客户端机密信息!
现在是时候为我们注册的应用程序定义必要的访问权限了。正如我们之前所做的那样,在浏览器中导航到您的 MS Teams 或 MS Sharepoint 文件夹站点并添加 ( / ** _layouts/15/appinv.aspx** ) 然后搜索。
通过将我们的 Client Id 信息添加到 App ID 部分,我们可以将其他信息与 Lookup 按钮相匹配。
https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly-azureacs
然后,请仅将必要的权限添加到您要在应用程序中使用 XML 格式的文件夹。 正确的 选项可以是 读、写、管理 和 完全控制 .在本教程中,我们选择了 完全控制 显示所有操作的选项。
<AppPermissionRequests AllowAppOnlyPolicy="true">
<AppPermissionRequest Scope="[ http://sharepoint/content/sitecollection/web/list](http://sharepoint/content/sitecollection/web/list) "
右=“完全控制” />
</AppPermissionRequests>
当 XML 选项与 Create 按钮一起保存时,它会被定向到新页面。通过选择要从此页面访问的文件夹来允许该应用程序。
客户端 ID 和客户端机密信息存储为 JSON 文件,以在 Python 应用程序中使用。
Create Json file for credentials
将 Sharepoint 与 Json 凭据连接
要使用 MS SharePoint API,我们需要创建一个带有客户端 ID 和客户端密码的 ClientContext 对象。我们可以通过使用包含我们之前获得并保存的客户端 ID 和客户端机密信息的 json 文件来做到这一点。
使用以下代码片段,我们可以创建一个 ctx 对象使用 json 文件的位置。
Connect Sharepoint with Keys
ctx = connect_sharepoint(cwd="path/of/your/credential/json/folder")
通过以下操作部分,我们将使用此客户端上下文对象( ctx )。
列表
列表操作将在两个不同的小节中进行检查,即列表文件夹和列表文件。
1) 列出文件夹
使用两个输入客户端上下文对象调用以下函数( ctx ) 和要列出的文件夹地址。如果需要函数输出以供将来使用,则可以将返回值分配给列表。
文件夹 = list_folders(ctx,"/teams/<channel> /Shared%20Documents/General")
VS Code Jupyter ( IPython Notebook ) output of list folders
2) 列出文件
和以前一样,只有 “libraryRoot.folder”
已更改为 “libraryRoot.files”
在以下代码段中。
文件 = list_files(ctx,"/teams/DataShare/Shared%20Documents/General/DummyFolder")
VS Code Jupyter ( IPython Notebook ) output of list files
移动文件
移动操作通过选择当前文件并提供新文件路径来工作。在下面的代码片段中,它使用了旧文件位置、新文件位置和客户端上下文对象 (ctx) 作为输入。
VS Code Jupyter ( IPython Notebook ) output of move file
重新命名文件
重命名操作通过在移动到相同位置时重命名它在后台工作。因此,它与之前的功能非常相似。
VS Code Jupyter ( IPython Notebook ) output of rename file
删除文件
对于删除过程,使用对象的sharepoint地址和Client Context对象进行事务 (ctx) 我们以前用过的。
VS Code Jupyter ( IPython Notebook ) output of delete file
上传文件
要将文件上传到 SharePoint,我们首先复制一个 SharePoint 目录地址。以下代码将其本地文件夹中的虚拟文件写入服务器目录中创建的具有新名称的文件。
VS Code Jupyter ( IPython Notebook ) output of upload file
将 DataFrame 上传到 Sharepoint 中的 Excel 文件
要加载数据帧,本地文件夹中的文件必须转换为 BytesIO 对象格式。之后,可以将其移动到 MS Sharepoint 服务器。
VS Code Jupyter ( IPython Notebook ) output of upload dataframe
概括:
- Office365 Python SDK 与客户端 ID 和客户端密码信息一起用于与 MS Teams 频道进行交互。我们可以与其他 Microsoft 产品(如 MS Sharepoint、OneDrive、Teams 等)进行相同的交互。
- 实施了两个最重要的阶段,新应用程序注册( appregnew.aspx ) 和应用程序权限 ( 应用程序.aspx )。
- Client Id 和 Client Secret 信息需要保存和存储。
- 使用给定的 gist 代码片段,您可以执行任何您想要的 ( 列出、移动、重命名、删除、上传 ) 操作。另外,您可以通过上传 Dataframe 远程管理 MS Teams 和 MS Sharepoint 中的 Excel 文件中的表格。
使用以下链接访问所有功能: GitHub
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明