Ako konzumovať blob súbor?

0

Otázka

Mám problém, som odovzdávanie xlsx súbory na google skladovanie. Keď chcem na ich opätovné použitie neskôr som získať blob súbor.

Po tomto som straty, o tom, ako použiť skutočné súbor xlsx.

from google.cloud import storage

import openpyxl

client = storage.Client()
new_bucket = client.get_bucket('bucket.appspot.com')

#get blob object:
o = new_bucket.get_blob('old_version.xlsx')

# <Blob: blobstorage.appspot.com, old_version.xlsx, 16372393787851916>

#download the object

bytes_version = o.download_as_bytes()

#load it to openpyxl library
wb = load_workbook(filename = bytes_version ,data_only=True)

InvalidFileException: openpyxl does not support b'.xmlpk\x05\x06\x00\x00\x00\x00:\x00:\x00n\x10\x00\x00\xa6\x06\x01\x00\x00\x00' file format, please check you can open it with Excel first. Supported formats are: .xlsx,.xlsm,.xltx,.xltm

Koniec cieľom by malo byť, aby stiahnuť súbor, ako objektu a prečítajte si ich s openpyxl knižnice (pracovať s pôvodného súboru, ale po skladovanie na cloud nenašli spôsob, ako získať moje súbor xlsx).

Ďakujeme za pomoc !

edit: pridanie aktuálny kód

blob excel google-cloud-storage python
2021-11-18 15:48:38
1

Najlepšiu odpoveď

2

Váš kód je v čítaní Cloud Storage blob do pamäte:

bytes_version = o.download_as_bytes()

A potom sa snaží načítať zošit z pamäť:

wb = load_workbook(filename = bytes_version ,data_only=True)

Avšak, load_workbook() metóda predpokladá, názov súboru alebo súbor-ako objekt. Pomocou byte reťazec s obsah súboru nie je podporovaný.

openpyxl.reader.excel.load_workbook(filename, read_only=False, keep_vba=False, data_only=False, keep_links=True)

Parametre:

filename (string or a file-like object open in binary mode c.f., zipfile.ZipFile) – the path to open or a file-like object

Dokumentácia

Riešenie:

Uložiť Cloud Storage blob na lokálnom pevnom disku súbor najprv a potom zadajte názov súboru vo výzve na load_workbook():

o.download_to_filename('/path/to/file')
wb = load_workbook(filename = '/path/to/file' ,data_only=True)

Poznámka: Nahradiť /cesta/k/súboru s reálnu cestu na váš systém, a s .xlsx príponu súboru.

2021-11-19 11:28:56

Ďakujeme, že ste John, chápať problém, I keď by bolo možné načítať súbor z pamäte v tomto prípade definitly zle. Ešte raz vďaka !
Tony

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................