2017-06-18 103 views
0

我是Dropbox API的新手。一位同事共享了一個包含大量(450 MB到17 GB之間的各種大小)csv文件的Dropbox文件夾。 我想在不下載Dropbox的情況下閱讀Dropbox上的文件。我嘗試了很多東西,包括閱讀Dropbox API教程和文檔以及引用Stackoverflow文章。使用Python讀取Dropbox共享csv文件的內容

我的問題是:什麼是讀取別人共享的csv文件的好方法,以及我需要用pandas.read_csv()讀取它們的路徑,如果文件大小允許我或者如果文件大小過大。 在此先感謝。

回答

0

我沒有嘗試,但...

報價Pandas Docs

pandas.read_csv(filepath_or_buffer,...

filepath_or_buffer:海峽,pathlib.Path ,py._path.local.LocalPath 或任何帶有read()方法的對象(如文件句柄或StringIO)

報價Dropbox Docs

get_file(from_path,...

返回 一個dropbox.rest.RESTResponse

RESTResponse

迴應請求可以進來RESTRESponse的形式。這些是圍繞套接字文件描述符的薄包裝。讀()和close()被實現。

with client.get_file('/magnum-opus.txt') as f: 
    p=pandas.read_csv(f) 

pandas.read_csv電話read方法上f(Dropbox的文件處理器)

編輯感謝@格雷格

如果你是:

然後,應儘可能容易downloading file with Dropbox V2 API那麼你可以檢查raw的財產反應是流模式,並已閱讀方法:

_, res = dbx.files_download(path) 
p=pandas.read_csv(res.raw) 

對不起,我沒有嘗試,只是嘗試和回來。如果沒有,那麼你必須使用迭代器和手塊。 Raw Response Content

+0

這裏的基本思想看起來是正確的,但請注意,'get_file'是Dropbox API v1方法,[已棄用](https://blogs.dropbox.com/developers/2016/06/api -v1棄用/)。您應該在[Dropbox API v2 Python SDK](https://www.dropbox.com/developers/documentation/python)中使用API​​ v2功能,例如[如圖所示](https://github.com) /dropbox/dropbox-sdk-python/blob/master/example/updown.py#L157)和[here](https:// stackoverflow。COM /文檔/保管箱-API/408 /下載-A-文件#噸= 201706182153218033648)。 – Greg

+0

@Greg,謝謝。現在我處於危險的一邊,因爲我沒有嘗試過。 IDK如果Dropbox響應以流模式運行。可能是我應該刪除答案。 – danihp