我是Dropbox API新手。一位同事共享了一个包含大型(各种大小在450 MB到17 GB之间)csv文件的Dropbox文件夹。 我想在不下载它们的情况下阅读Dropbox上的文件。我尝试了很多东西,包括阅读Dropbox API教程和文档,以及参考Stackoverflow帖子。
我的问题是:读取其他人共享的csv文件的好方法是什么?我需要使用pandas.read_csv()来读取它们的路径,如果大小允许我或者如果大小太大则逐行读取它们。 提前致谢。
答案 0 :(得分:0)
我没有尝试过,但是......
引用Pandas Docs:
pandas.read_csv(filepath_or_buffer,...
filepath_or_buffer:str,pathlib.Path,py._path.local.LocalPath 或任何带有read()方法的对象(例如文件句柄或StringIO)
<强> 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