当我从存储平台Web UI下载存储在Google云端存储中的存储桶中的GZIP文件时,一切顺利,我可以毫无问题地解压缩该文件。
然而,当我使用googleapiclient和Python下载文件时,我无法解压缩它。 7-Zip表示该文件已损坏。 我的代码:
import io
from apiclient.http import MediaIoBaseDownload
from googleapiclient import http
bucket='bqtoredshiftdaily'
out_file=os.path.join(current_dir,process_name,"Upload",gcsfile.replace("/", "_"))
with open(out_file, 'w') as f:
req = gcs_service.objects().get_media(bucket=bucket, object=gcsfile)
downloader = http.MediaIoBaseDownload(f, req)
done = False
while done is False:
status, done = downloader.next_chunk()
print("Download {}%.".format(int(status.progress() * 100)))
下载成功但正如我所说,我无法解压缩下载的GZIP文件。 知道为什么吗?
答案 0 :(得分:1)
我将输出文件更改为二进制文件并解决了它:
with open(out_file, 'wb') as f:
而不是:
with open(out_file, 'w') as f: