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

时间:2016-11-04 16:01:33

标签: python linux numpy

我想编辑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文件的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

我和档案管理员一起试过了;就我而言,Mate版本为Engrampa

当我尝试从.npz文件中删除文件时出错。但如果我将其重命名为.zip,删除工作正常。并且np.load处理了zip名称。

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

答案 1 :(得分:0)

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

zip foo -d y

这将从zip文件y中删除文件foo

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

相关问题