使用Python与Sharepoint进行交互——第2部分

目录

介绍

背景

安装

认证方式

在Sharepoint文档库中创建文件夹

将文件添加到您的Sharepoint文档库

将文件的元数据更新到您的Sharepoint文档库

从您的Sharepoint文档库下载上传的文件

从您的Sharepoint文档库中删除上传的文件

兴趣点


介绍

这是关于使用Python与开源PythonShareplum进行Sharepoint交互的教程。在本文中,我们将介绍安装Shareplum,与Sharepoint帐户建立连接并创建文档库,将记录添加到文档库,更新文档库中的现有记录,从文档库中检索记录,以及以后删除文件库中的文件。

背景

最近,我正在一个项目中,我们曾经从该项目中提取信息。现在,需要将应用程序与现有的Sharepoint工作流集成在一起。但是由于该项目是使用PythonDjango构建的,因此我不得不找到一种使用PythonSharepoint进行交互的方法,否则我将不得不使用ASP.NET来创建Web API,然后在应用程序中使用它。与使用CSOM一样,您可以使用ASP.NETSharepoint进行交互,但这不是一个可行的选择。因此,我必须搜索一个支持使用PythonSharepoint进行交互的原因的Python库。经过大量搜索并找到解决方法之后,最终,我找到了Shareplum,它是Python中的一个开源项目,可让您与Sharepoint进行交互,从而减轻了您的繁重工作,并使您专注于自己的任务。这是我写的两个系列文章。以下是第一个讨论使用Sharepoint List的链接:

  • 使用Python与Sharepoint进行交互——第1部分

安装

打开命令提示符/Powershell/Terminal,然后使用pip输入以下内容进行安装:

pip install shareplum

如果已安装Git,则可以从源代码中按如下所示安装它:

git clone git://github.com/jasonrollins/shareplum
cd shareplum
python setup.py install

认证方式

我们将通过提供凭据来访问Sharepoint服务器,从而对我们的应用程序进行身份验证,从而使用Shareplum库连接到Sharepoint服务器。

from shareplum import Site
from shareplum import Office365
from shareplum.site import Version

sharepointUsername = "[email protected]"
sharepointPassword = "@123$"
sharepointSite = "https://abc.sharepoint.com/sites/MySite"
website = "https://abc.sharepoint.com"

authcookie = Office365(website, username=sharepointUsername, 
             password=sharepointPassword).GetCookies()
site = Site(sharepointSite, version=Version.v2016, authcookie=authcookie)

Sharepoint文档库中创建文件夹

现在我们来看看在Sharepoint站点的文档库中添加一个新的Folder的代码,代码示例如下:

folder = site.Folder('DocumentLibraryName/FolderName')

注意:如果存在一个使用提供FolderName的名称的文件夹,则它将引用该特定文件夹以执行程序中给出的任何操作。如果没有名为FolderName文件夹,则它将创建一个名为FolderName的新文件夹。

将文件添加到您的Sharepoint文档库

现在,我们将在下面的代码示例中查看在Sharepoint网站上的文档库中添加文本文件的代码:

set_folder = site.Folder('DocumentLibraryName')
folder.upload_file('Enter your text over here','FileName.txt')

在上面的代码片段中,我们已经了解了如何上传纯文本文件,下面让我们看一个将二进制文件(如PDF)上传到我们的文档库的示例。请参阅以下代码段:

set_folder = site.Folder('DocumentLibraryName')
folder.upload_file('Enter your text over here','FileName.txt')

注意:上面的代码片段是一个上传二进制文件的例子,我们可以通过在FileNameByUser中传递适合我们的名称来设置文件在Sharepoint文档库中上传的名称

将文件的元数据更新到您的Sharepoint文档库

现在,我们将在下面的代码示例中查看将元数据添加到文件的代码,该文件先前已上传到Sharepoint网站的文档库中:

instanceOfDocumentLibrary = site.List('DocumentLibraryName')
GetData = instanceOfDocumentLibrary.GetListItems()

for data in GetData:
    if(data["Name"]==FileNameByUser)
        update_data = [{'ID':data["ID"],'Column_1_Name':'Value','Column_2_Name':'value'}]
        instanceOfDocumentLibrary.UpdateListItems(data=update_data,kind='Update')
    else:
        pass

注意:注意:在Sharepoint中的文档库的内部是一个列表。

让我们讨论一下此代码片段。在这里,我们为Document Library创建了一个实例DocumentLibraryName,然后使用GetListItems 方法检索文档库中所有可用的记录并将其存储在GetData中。然后,我们遍历GetData 列表以找到要在其文件名的帮助下更新元数据的文件。我们还可以通过文档库中可用的任何其他列(属性)来查找文件,例如在我们的案例Column_1_NameColumn_2_Name中,但我们也可以使用ID 列,它是Sharepoint中所有ListsDocument库默认可用的,因为它是唯一且自动递增的列。找到所需文件后,我们使用更新上传文件的元数据的UpdateListItems 方法。

在执行此代码段之前,列Column_1_NameColumn_2_Name的文档库中文件的元数据为空,但该值已存在,因为它是自动递增的列。

注意:在上述情况下,假定每个文件的文件名都是唯一的。如果文件名保持不变,则可以覆盖与该文件名匹配的最后一个文件的数据。

从您的Sharepoint文档库下载上传的文件

现在,我们将在以下代码示例中查看从我们的Sharepoint网站从文档库下载上传文件的代码。

folder.get_file('FileName.txt')

注意:这是下载非二进制文件的示例。

从您的Sharepoint文档库中删除上传的文件

下面的代码示例中,我们将查看从Sharepoint站点的文档库中获取下载上传文件的代码。

folder.delete_file('FileName.txt')

注意:这是删除非二进制文件的示例。

兴趣点

  • 使用PythonSharepoint中的文档库中创建文件夹
  • 使用Python将文件上传到Sharepoint文档库
  • 使用Python将元数据更新到Sharepoint文档库中的Uploaded File
  • 使用PythonSharepoint文档库下载上传的文件
  • 使用PythonSharepoint文档库中删除上传的文件

你可能感兴趣的:(python,Python,Sharepoint)