Upload and Modify Files in Microsoft Sharepoint using Python
有时很容易在互联网上找到您要查找的内容,但应用结果可能很困难。本文介绍如何使用 Python SDK 访问 sharepoint,以及如何从 Microsoft Sharepoint 和 Teams Channel 获取访问密钥。然后解释如何在 Microsoft Sharepoint 中列出、上传、修改文件。
如果要上传excel文件,请安装pandas
$pip 安装熊猫 $pip install Office365-REST-Python-Client
否则,您只需要 Office365-REST-Python-Client。
$pip install Office365-REST-Python-Client
让我们首先展示如何从 Microsoft 站点获取访问 ID 和访问密钥以访问应用程序。我们需要授予我们要访问的文件夹的权限,如下面的链接所示。此文件夹区域可以位于 MS Teams 频道或 MS Sharepoint 中的任何位置。
[
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
要使用 MS SharePoint API,我们需要创建一个带有客户端 ID 和客户端密码的 ClientContext 对象。我们可以通过使用包含我们之前获得并保存的客户端 ID 和客户端机密信息的 json 文件来做到这一点。
使用以下代码片段,我们可以创建一个 ctx 对象使用 json 文件的位置。
Connect Sharepoint with Keys
ctx = connect_sharepoint(cwd="path/of/your/credential/json/folder")
通过以下操作部分,我们将使用此客户端上下文对象( ctx )。
列表操作将在两个不同的小节中进行检查,即列表文件夹和列表文件。
使用两个输入客户端上下文对象调用以下函数( ctx ) 和要列出的文件夹地址。如果需要函数输出以供将来使用,则可以将返回值分配给列表。
文件夹 = list_folders(ctx,"/teams/<channel> /Shared%20Documents/General")
VS Code Jupyter ( IPython Notebook ) output of list folders
和以前一样,只有 “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
要加载数据帧,本地文件夹中的文件必须转换为 BytesIO 对象格式。之后,可以将其移动到 MS Sharepoint 服务器。
VS Code Jupyter ( IPython Notebook ) output of upload dataframe
使用以下链接访问所有功能: GitHub
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/23554/26261001