使用Python从Box下载文件

时间:2016-07-25 15:22:01

标签: python excel download box

我正在尝试使用Python将一个Excel文件从Box下载到我的本地驱动器。

使用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_stream here,但我不知道如何使用它来创建Excel文件并且我的搜索没有帮助。)< / p>

3 个答案:

答案 0 :(得分:1)

path = 'anyFileName.xlsx' with open(path, 'wb') as f: client.file(file_id).download_to(f) 的文档和来源herehere是正确的。我是从this answer自己了解到的。您只需要执行以下操作

SW_UNIT = FOO
C_OBJECTS = bar.o 
LIBRARY = lib/lib$(SW_UNIT).a
# 
.c:o:
      $(CC) -c $(CFLAGS) $<
#
.PHONY: clib    
clib: $(C_OBJECTS) $(LIBRARY)
#
$(LIBRARY): $(C_OBJECTS)
            @ar ru $(LIBRARY) $(C_OBJECTS)

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这就是我用来从框中读取excel文件的方法,您可以检查内容字符类型并在解码时使用它。

from boxsdk import JWTAuth
from boxsdk import Client
import io
import pandas as pd
import chardet # for checking char type

# Configure JWT auth object
sdk = JWTAuth.from_settings_file('config/box_config.json')
# Get auth client
client = Client(sdk)

s = client.file(file.id).content()
print(chardet.detect(open(s, 'rb').read())['encoding']) # gives char type
outputDF = pd.read_excel(io.StringIO(s.decode('utf-8')))