使用Python从OneDrive下载Excel文件会导致文件损坏

时间:2016-07-22 16:25:44

标签: python excel sharepoint onedrive

我正在尝试从OneDrive位置下载excel文件。我的代码可以正常获取文件,但文件已损坏(我收到错误消息):

import urllib2

data = urllib2.urlopen("enter url here")
with open('C:\\Video.xlsx', 'wb') as output:
    output.write(data.read())
output.close()
print "done"

我使用访客访问excel文件,这样我就不必使用身份验证了。结果文件似乎是15KB,原始文件是22KB。

2 个答案:

答案 0 :(得分:2)

您无法使用网址直接从OneDrive下载Excel文件。即使您未经任何授权共享文件,您仍然可能会获得指向中间HTML页面的链接,而不是Excel二进制文件本身。

要从OneDrive下载项目,您首先需要进行身份验证,然后传递您之后的文件位置。您可能希望使用OneDrive REST API。有关如何执行此操作的详细信息记录在OneDrive's SDK for Python GitHub页面上,其中包含一些示例以帮助您入门。

答案 1 :(得分:0)

我明白了。网址格式如下:

'https://onedrive.live.com/view.aspx?cid=....app=Excel'

因此,我所要做的就是在该网址将“查看”更改为“下载”,并使用以下代码:

import urllib.request

url = 'https://onedrive.live.com/view.aspx?cid=.....app=Excel'

urllib.request.urlretrieve(url, "test.xlsx")