【问题标题】:Need help converting powershell commands that download zip file from url to python需要帮助将下载 zip 文件的 powershell 命令从 url 转换为 python
【发布时间】: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


【解决方案1】:

您的 URL 字符串是否包含 /../ ? 如果是,您需要从您的 url 字符串中删除这些部分。 解释here,虽然不是完全相同的问题。

【讨论】:

    【解决方案2】:

    您的代码似乎运行良好,请检查您的网址,或使用此代码

    import requests
    
    print('Download Starting...')
     
    url = 'http://www.url.com/file.ext'
     
    r = requests.get(url)
     
    filename = url.split('/')[-1] 
    with open(filename,'wb') as output_file:
        output_file.write(r.content)
     
    print('Download Completed!!!')
     
    

    【讨论】:

      猜你喜欢
      • 2020-07-19
      • 2013-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-05
      相关资源
      最近更新 更多