使用Python从Sharepoint下载文件

使用Python从Sharepoint下载文件,python,python-3.x,sharepoint,office365api,Python,Python 3.x,Sharepoint,Office365api,我正在尝试使用office365模块从Sharepoint下载excel文件。这是我的密码 from office365.runtime.auth.authentication_context import AuthenticationContext from office365.sharepoint.client_context import ClientContext from office365.sharepoint.file import File app_set

我正在尝试使用office365模块从Sharepoint下载excel文件。这是我的密码

   from office365.runtime.auth.authentication_context import AuthenticationContext
   from office365.sharepoint.client_context import ClientContext
   from office365.sharepoint.file import File
   app_settings = {
     'url': 'https://xxxxx/sites/DownloadFiles',
     'client_id': 'xxxxxx',
     'client_secret': 'xxxxxx',
   }
   if name == 'main':
      ctx_auth = AuthenticationContext(url=app_settings['url'])
      ctx_auth.acquire_token_for_app(client_id=app_settings['client_id'], 
      client_secret=app_settings['client_secret'])
      ctx = ClientContext(app_settings['url'], ctx_auth)

      path = "F:\myexcel.xlsx"
      response = File.open_binary(ctx, "/Shared%20Documents/myexcel.xlsx")
      response.raise_for_status()
      with open(path, "wb") as local_file:
           local_file.write(response.content)
当我运行该代码时,会出现以下错误:

400 Client Error: Bad Request for url: https://xxx/DownloadFiles/_api/web/getfilebyserverrelativeurl('/Shared%20Documents/myexcel.xlsx')/%5C$value

我能够在我的SPO上重现相同的问题。

请按以下方式修改代码以修复它:

response = File.open_binary(ctx, "/sites/{abc}/Shared%20Documents/source.txt")
例如,我想从像“”这样的网站集下载文件,serverrelativeurl是“/sites/abc”

您可以通过“\u spPageContextInfo”对象获取serverrelativeurl:

还有另一个SharePoint库“”提供了一些操作文件的简单方法,您可以尝试一下

致以最良好的祝愿, 江贝克