使用Python

时间:2017-06-18 18:46:41

标签: python dropbox-api

我是Dropbox API新手。一位同事共享了一个包含大型(各种大小在450 MB到17 GB之间)csv文件的Dropbox文件夹。 我想在不下载它们的情况下阅读Dropbox上的文件。我尝试了很多东西,包括阅读Dropbox API教程和文档,以及参考Stackoverflow帖子。

我的问题是:读取其他人共享的csv文件的好方法是什么?我需要使用pandas.read_csv()来读取它们的路径,如果大小允许我或者如果大小太大则逐行读取它们。 提前致谢。

1 个答案:

答案 0 :(得分:0)

我没有尝试过,但是......

引用Pandas Docs

  

pandas.read_csv(filepath_or_buffer,...

     

filepath_or_buffer:str,pathlib.Path,py._path.local.LocalPath 或任何带有read()方法的对象(例如文件句柄或StringIO)

引用Dropbox Docs

  

<强> get_file(from_path,...

     

返回   dropbox.rest.RESTResponse

     

<强> RESTResponse

     

对请求的响应可以采用RESTResponse的形式。这些是套接字文件描述符周围的瘦包装器。 read()和close()已实现。

然后,应该像以下一样简单:

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

pandas.read_csv调用read上的f方法(dropbox文件处理程序)

已编辑感谢@greg

如果您是downloading file with Dropbox V2 API,那么您可以检查raw响应的request属性是否处于流模式且具有读取方法。

_, res = dbx.files_download(path)
p=pandas.read_csv(res.raw)
抱歉,我没有尝试过,只是试着回来。如果没有,那么你必须使用迭代器和手工块。更多细节见Raw Response Content