2

zip アーカイブをダウンロードするとします。これは、一時ファイルの使用を避けて、その場でファイルをデータ ストリームに追加するようなことを意味します。

wget http://example.com/archive.zip -O - | zipadder -f myfile.txt | pv

bsdtar がそのようなストリームを操作できることをどこかで読みました。

4

1 に答える 1

0

メモリ内で完全に zip 構造を操作する必要があるため、これはおそらく RAM では困難です。そうは言っても、次のように標準入力から読み取ったメモリバックアップされたファイルのようなオブジェクトを操作するためzipadderに使用して、Pythonで書き込むことができるはずです。StringIO

#!/usr/bin/env python

import zipfile
import sys
import StringIO

s = StringIO.StringIO(sys.stdin.read())  # read buffer from stdin
f = zipfile.ZipFile(s, 'a')
f.write('myfile.txt')  # add file to buffer
f.close()
print s.getvalue()  # write buffer to stdout
于 2015-07-15T23:31:27.617 に答える