使用 Python 从 OneDrive 下载 Excel 文件导致文件损坏
Using Python to download an Excel file from OneDrive results in corrupt file
我正在尝试从 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。
您不能使用 URL 直接从 OneDrive 下载 Excel 文件。即使您在未经任何授权的情况下共享该文件,您仍可能会得到 link 到中间 HTML 页面,而不是 Excel 二进制文件本身。
要从您的 OneDrive 下载项目,您首先需要进行身份验证,然后传递您要下载的文件的位置。您可能想要使用 OneDrive REST API。 OneDrive's SDK for Python GitHub 页面上记录了有关如何执行此操作的详细信息,并提供了一些帮助您入门的示例。
我明白了。 url 的格式如下:
'https://onedrive.live.com/view.aspx?cid=.....app=Excel'
所以,我所要做的就是在 url 处将“查看”更改为“下载”,并使用以下代码:
import urllib.request
url = 'https://onedrive.live.com/view.aspx?cid=.....app=Excel'
urllib.request.urlretrieve(url, "test.xlsx")
我正在尝试从 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。
您不能使用 URL 直接从 OneDrive 下载 Excel 文件。即使您在未经任何授权的情况下共享该文件,您仍可能会得到 link 到中间 HTML 页面,而不是 Excel 二进制文件本身。
要从您的 OneDrive 下载项目,您首先需要进行身份验证,然后传递您要下载的文件的位置。您可能想要使用 OneDrive REST API。 OneDrive's SDK for Python GitHub 页面上记录了有关如何执行此操作的详细信息,并提供了一些帮助您入门的示例。
我明白了。 url 的格式如下:
'https://onedrive.live.com/view.aspx?cid=.....app=Excel'
所以,我所要做的就是在 url 处将“查看”更改为“下载”,并使用以下代码:
import urllib.request
url = 'https://onedrive.live.com/view.aspx?cid=.....app=Excel'
urllib.request.urlretrieve(url, "test.xlsx")