를 사용하는 방법을 blob 파일입니까?

0

질문

나는 데 문제,나는 업로드 xlsx google 에 파일을 저장합니다. 하고 싶을 때 나중에 다시 사용하기 위해서 구 blob 파일입니다.

그 후 나는 손실에서 사용하는 방법을 실제 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

최종 목표는 것을 다운로드 파일체 및 그들을 읽으로 openpyxl 라이브러리(작동 원본 파일과 함께 그러나 저장소에서 클라우드을 찾을 수 없을 얻는 방법은 내 xlsx 파일)입니다.

감사에 대한 도움말!

편집:현재의 코드를 추가

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

최고의 응답

2

코드 읽는 클라우드 저장소 blob 으로 메모리:

bytes_version = o.download_as_bytes()

하려고 다음을 로드하는 통합 문서에서 메모리:

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

그러나, load_workbook() 방법을 기대하고 파일 또는 파일과 같은 개체입니다. 를 사용하여 바이트는 문자열을 가진 파일 내용은 지원되지 않음.

openpyxl.리더입니다.excel.load_workbook(파일 읽기 전=False, keep_vba=False,data_only=False,keep_links=True)

Parameters:

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

문서

솔루션:

저장을 클라우드 저장소 작업을 포함하는 로컬 디스크 파일의 첫번째 과정에서 지정하는 파일 이름에서 호출 load_workbook():

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

Note:대체 /path/to/파일을 실제 경로에 당신의 시스템과 함께 .xlsx 파일 확장자가 있습니다.

2021-11-19 11:28:56

감사 요한 문제를 이해가는 것이 가능하여 부하에서 파일을 메모리에 있는 경우 분명히 잘못입니다. 다시 한번 감사드립니다!
Tony

다른 언어로

이 페이지는 다른 언어로되어 있습니다

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