Linux命令编辑由numpy savez函数生成的zip文件



我想编辑numpy savez函数生成的zip文件。例如,我们可以创建一个像

这样的zip文件
>>> import numpy as np
>>> x = np.array([1,2,3])
>>> y = np.array([4,5,6])
>>> dat = {'/path/to/x': x, '/path/to/y': y}
>>> f = open('foo', 'wb')
>>> np.savez(f, **dat)

这段代码创建了一个名为foo的zip文件。(在ubuntu GUI上,它显示为Zip存档类型)

然后,我要删除zip文件中的文件y。(不使用Python)

我尝试了一种方法,首先解压缩文件,然后手动删除文件,然后再次压缩。我用tar命令做了一个zip文件,但是它生成的是gzip压缩的tar文件。

如何编辑和生成numpy save_z生成的zip文件?

使用zip命令中的-d选项,如下所示:

zip foo -d y

这将从压缩文件foo中删除文件y

您可以通过unzip -l foo检查zip文件中存储的文件,以查看foo中存储的文件的完整路径和名称。

我在存档管理器上尝试了这个;在我的例子中,Mate版本,Engrampa .

当我试图从.npz文件中删除文件时,我得到了一个错误。但是如果我把它重命名为.zip,删除工作得很好。np.load处理了zip的名称。

一个npz文件是p7zip Version 9.20;这是一种不同于"本地"unix gzipped tar的存档格式。一个现代的linux归档管理器可以处理这些和其他的,这取决于安装了哪些命令行工具。

相关内容

  • 没有找到相关文章

最新更新