如何在Watson数据平台的数据资产中解压缩zip文件?
package.json
streaming_body_1是DATA ASSETS部分中的zip文件流体对象。我将zip文件上传到DATA ASSETS。
如何解压缩数据资产中的zip文件?
因为我不知道DATA ASSETS部分的确切密钥路径。
我试图在项目的jupyter笔记本中这样做。
谢谢!
答案 0 :(得分:2)
当您将文件上传到项目时,它会存储在项目的指定云存储中,默认情况下应该是云对象存储。 (检查您的项目设置。)要在笔记本中处理上传的文件(只是一种数据资产,还有其他类型),您必须先从云存储中下载它,以便在内核的文件系统中访问它然后执行所需的文件操作(例如,读取,提取,......)
假设您上传了ZIP文件,您应该能够使用工具生成读取ZIP文件的代码:
点击右上角的1010
(数据图标)
选择“插入代码”> “插入StreamingBody对象”
根据需要使用StreamingBody
我跑了一个快速测试,它就像一个魅力:
...
# "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
。