2016-07-25 10 views
1

Ich versuche Python zu verwenden, um eine Excel-Datei von Box auf mein lokales Laufwerk herunterzuladen.Verwenden von Python zum Herunterladen von Dateien aus Box

Mit der Boxsdk konnte ich über OAuth2 authentifizieren und erfolgreich die Datei-ID auf Box erhalten.

Wenn ich jedoch die client.file(file_id).content() Funktion verwende, gibt es nur eine Zeichenfolge zurück, und wenn ich client.file(file_id).get() verwende, dann gibt es mir nur eine boxsdk.object.file.File.

Weiß jemand, wie man eine dieser Dateien in eine Excel-Datei auf dem lokalen Rechner schreibt? Oder eine bessere Methode, Python zum Herunterladen einer Excel-Datei aus Box zu verwenden.

(Ich entdeckte, dass boxsdk.object.file.File eine Option download_to(writeable_streamhere hat, aber ich habe keine Ahnung, wie man das verwendet, um eine Excel-Datei zu erstellen und meine Suchen waren nicht hilfreich).

+0

Sie sind den größten Teil des Weges. Was übrig bleibt, sollte einfacher sein als das, was Sie bereits getan haben. Wenn ich die Boxdokumente richtig lese, muss man nur eine neue, beschreibbare Datei im Binärmodus öffnen und diese Datei (das Python-Dateiobjekt, nicht den Namen der Datei) als Parameter für 'download_to()' verwenden . Schau dir Pythons 'open()' eingebaute Funktion an. –

+0

Danke John Y, das hat funktioniert! Ich benutzte die Funktion open() mit den Argumenten 'wb' (für Modus) und 1 (für Puffer). So lange ich bereits eine leere Excel-Datei auf dem lokalen Laufwerk erstellt hatte, schrieb sie die heruntergeladenen Daten in das Excel-Blatt (einschließlich der Trennung in verschiedene Registerkarten). Excel war nicht glücklich, als ich versuchte, die Excel-Datei manuell zu öffnen, aber solange ich die Funktion close() zuerst benutzte, war es möglich, die Excel-Registerkarten als Datenrahmen in Python mit Pandas zu öffnen. Danke noch einmal! – Clerin

Antwort

0

Sie könnten Python csv library zusammen mit Dialekt = 'Excel' Flag verwenden. Es funktioniert sehr gut für den Export von Daten nach Microsoft Excel. Die Grundidee besteht darin, csv.writer innerhalb einer Schleife zum Schreiben jeder Zeile zu verwenden. Probieren Sie es aus und wenn nicht, schreiben Sie den Code hier.

Verwandte Themen