2016-07-25 72 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來寫每一行。試試這個,如果你不能,在這裏發佈代碼。