2016-07-25 58 views
1

我正尝试使用Python将Excel文件从框中下载到我的本地驱动器。使用Python从框中下载文件

使用boxsdk我能够通过OAuth2进行身份验证,并成功获取Box上的文件ID。

但是,当我使用client.file(file_id).content()函数,它只是返回一个字符串,如果我使用client.file(file_id).get()那么它只是给我一个boxsdk.object.file.File

有没有人知道如何将其中的任何一个写入本地机器上的Excel文件?或者使用Python从Box下载Excel文件的更好方法。

(我发现boxsdk.object.file.File有一个选项download_to(writeable_streamhere但我不知道如何用它来创建一个Excel文件,我的搜索也没有帮助)。

+0

你是那里的大部分。剩下的应该比你已经做的更容易。如果我正在阅读Box文档,您只需要以二进制模式打开一个新的可写文件,并使用该文件(Python文件对象,而不是文件名)作为'download_to()'的参数, 。检查Python的open()内置函数。 –

+0

谢谢约翰Y,工作!我用参数'wb'(模式)和1(缓冲区)使用了open()函数。只要我已经在本地驱动器中创建了一个空白的excel文件,那么它会将下载的数据写入Excel表格(包括将它们分成不同的标签页)。当我尝试手动打开excel文件时,Excel并不高兴,但只要我先使用close()函数,然后就可以使用pandas在Python中以数据框的形式打开excel选项卡。再次感谢! – Clerin

回答

0

您可以使用python csv library以及dialect ='excel'标志。它非常适合将数据导出到Microsoft Excel。 主要思想是在循环中使用csv.writer来写每一行。试试这个,如果你不能,在这里发布代码。