如何在Watson数据平台的数据资产中解压缩zip文件?
from io import BytesIO
import zipfile
zip_ref = zipfile.ZipFile(BytesIO(streaming_body_1.read()), 'r')
zip_ref.extractall(WHICH DIRECTORY FOR THE DATA ASSETS)
zip_ref.close()
streaming_body_1是数据资产部分中的zip文件流正文对象。我将zip文件上传到数据资产。
如何在数据资产中解压缩zip文件?
因为我不知道数据资产部分的确切关键路径。
我试图在这个项目的jupyter笔记本上做这件事。
谢谢!
发布于 2018-01-16 14:56:58
当您将文件上载到您的项目时,它将存储在项目的指定云存储中,默认情况下,云存储应该是云对象存储。(检查项目设置。)要处理笔记本中上传的文件(这只是一种数据资产,还有其他),您必须先从云存储中下载它,以便在内核的文件系统中访问它,然后执行所需的文件操作(例如读取、提取、.)
假设您已经上传了ZIP文件,那么您应该能够生成使用以下工具读取ZIP文件的代码:
1010
(数据图标)我做了一个快速的测试,它就像一种魅力:
...
# "Insert StreamingBody object" generated code
...
from io import BytesIO
import zipfile
zip_ref = zipfile.ZipFile(BytesIO(streaming_body_1.read()), 'r')
print zip_ref.namelist()
zip_ref.close()
编辑1:如果您的存档是压缩的tar文件,请使用以下代码:
...
# "Insert StreamingBody object" generated code
...
import tarfile
from io import BytesIO
tf = tarfile.open(fileobj=BytesIO(streaming_body_1.read()), mode="r:gz")
tf.getnames()
编辑2:为了避免读取超时,必须将生成的代码更改为
config=Config(signature_version='oauth'),
至
config=Config(signature_version='oauth',connect_timeout=50, read_timeout=70),
有了这些修改,我就可以下载并从您提到的回购中提取training_data.tar.gz
。
https://stackoverflow.com/questions/48274094
复制相似问题