我正在尝试使用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>
答案 0 :(得分:1)
path = 'anyFileName.xlsx'
with open(path, 'wb') as f:
client.file(file_id).download_to(f)
的文档和来源here和here是正确的。我是从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')))