使用 Python 从 Sharepoint 下载文件
File Download from Sharepoint using Python
我正在尝试使用 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")
比如我想从“https://xxxx.sharepoint.com/sites/abc”这样的网站集下载文件,serverrelativeurl是“/sites/abc”
您可以通过“_spPageContextInfo”对象获取 serverrelativeurl:
还有一个 SharePoint 库“shareplum”提供了一些简单的文件操作方法,您可以试试。
此致,
贝克刚
我正在尝试使用 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")
比如我想从“https://xxxx.sharepoint.com/sites/abc”这样的网站集下载文件,serverrelativeurl是“/sites/abc”
您可以通过“_spPageContextInfo”对象获取 serverrelativeurl:
还有一个 SharePoint 库“shareplum”提供了一些简单的文件操作方法,您可以试试。
此致, 贝克刚