2016-11-04 9 views
0

numpy savez関数で生成されたzipファイルを編集したいと思います。たとえば、次のようなzipファイルを作成できます。numpy savez関数から生成されたzipファイルを編集するLinuxコマンド

>>> 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

あなたが 'unzip'を使うなら、' zip'コマンドをチェックしてください。 – furas

答えて

0

は、このようなzipコマンドから-dオプションを使用します。

unzip -l fooでzipファイルに保存されているファイルを確認して、fooに格納されているファイルの完全なパスと名前を確認できます。

+0

こんにちは、Alvaro。ありがとうございました。コマンドは私の作品ですが、 'foo'の名前を' foo.zip'に変更しなければなりませんでした。この名前を変更せずに作業するオプションはありますか? – ywat

+0

'zip'は古いWindowsコード(7-Zip)に基づいているため、ネイティブUNIXよりもファイル拡張子の方が固いかもしれません。 – hpaulj

+0

拡張ヘルプの手がかりはありますか? 'zip -h2'? – hpaulj

0

私はアーカイブマネージャでこれを試しました。私の場合はMateバージョン、Engrampaです。

.npzファイルからファイルを削除しようとしたときにエラーが発生しました。しかし、私が.zipに名前を変更した場合、削除は正常に機能しました。 np.loadzipという名前で処理されました。

npzファイルはp7zip Version 9.20です。これは、 'native' unixとは異なるアーカイブ形式、gzipped tarです。最新のlinuxアーカイブマネージャーは、インストールされているコマンドラインツールに応じて、これらと他のものを処理できます。これは、zipファイルfooからファイルyを削除します

zip foo -d y 

関連する問題