【发布时间】:2021-10-09 09:31:01
【问题描述】:
正如标题所示,我需要将成功从共享点 url 下载 zip 文件的 powershell 命令转换为 python。
在 Windows 中使用 powershell 从 url 下载 zip 文件就像一个魅力。
> $client = New-Object System.Net.WebClient
> $client.Headers.Add("Authorization","Bearer eyJ...")
> $DownloadFilePath = "C:\path\to\file.zip"
> $FileUrl = "https://xxx.sharepoint.com/sites/xxx/_api/Web/GetFileByServerRelativePath(decodedurl='sites/xxx/path/to/file.zip')/`$value"
> $client.DownloadFile($FileUrl, $DownloadFilePath)
但是,使用 python 下载一个 zip 文件 - 给定与上面相同的 url 和令牌 - 不起作用。下面的代码会产生 400 错误和一个空的 zip 文件。
import requests
FileUrl = "https://xxx.sharepoint.com/sites/xxx/_api/Web/GetFileByServerRelativePath(decodedurl='sites/xxx/path/to/file.zip')/`$value"
headers = {
"Authorization": "Bearer eyJ..."
}
r = requests.get(FileUrl, headers=headers)
print(r.status_code)
with open(r"C:\path\to\file.zip", "wb") as f:
f.write(r.content)
我在这里做错了什么?
编辑: 如果我在 powershell 中执行以下命令
> $value
我没有收到任何响应,但在 url 中需要生成一个非空的本地 zip 文件。
【问题讨论】:
-
我不知道你用
...省略了什么,但看起来"https://....zip')/`$value"中有一个或多个变量替换。您需要将$value和...zip')放入您的Python 代码中,以便生成有效的URL。一个没有'和)和$value。 -
我认为你是对的,我在 FileUrl 中提供了更多信息。我只编辑了一些敏感信息。
标签: python