我想编辑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文件的正确方法是什么?
答案 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
中存储的文件的完整路径和名称。