我想编辑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归档管理器可以处理这些和其他的,这取决于安装了哪些命令行工具。