如何使用python sharepoint库下载文件

2024-05-17 06:22:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用此库https://github.com/ox-it/python-sharepoint连接到SharePoint列表。我可以进行身份验证,访问列表字段,包括我想要的文件的完整URL,而且这个库似乎确实有is_file()open()方法,但是,我不知道如何调用它们。 任何建议都很感激!

from sharepoint import SharePointSite, basic_auth_opener 

opener = basic_auth_opener(server_url, "domain/username", "password")
site = SharePointSite(server_url, opener)

sp_list = site.lists['ListName']
for row in sp_list.rows:
       print row.id, row.Title, row.Author['name'], row.Created, row.EncodedAbsUrl
       #download file
       #row.open() ??

引用自述文件:

Support for document libraries is limited, but SharePointListRow objects do support a is_file() method and an open() method for accessing file data.


Tags: authurl列表forserverbasicissite
1条回答
网友
1楼 · 发布于 2024-05-17 06:22:06

基本上,在列表行(类型为SharePointListRow)上调用这些方法。 open()方法实际上是urllib2的opener的方法,您通常这样使用它:

import urllib2
opener = urllib2.build_opener()
response = opener.open('http://www.example.com/')
print ('READ CONTENTS:', response.read())
print ('URL          :', response.geturl())
# ....

因此,您应该能够像这样使用它(我没有任何Sharepoint网站来检查这个):

from sharepoint import SharePointSite, basic_auth_opener 

opener = basic_auth_opener(server_url, "domain/username", "password")
site = SharePointSite(server_url, opener)

sp_list = site.lists['ListName']
for row in sp_list.rows():                # <<<
   print row.id, row.Title, row.Author['name'], row.Created, row.EncodedAbsUrl
   # download file here 

   print ( "This row: ", row.name() )     # <<<
   if row.is_file():                      # <<<
      response = row.open()               # <<<
      file_data = response.read()         # <<<

      # process the file data, e.g. write to disk

相关问题 更多 >