zipfile をインポート
z = zipfile.ZipFile(filename, 'r')
for i in z.infolist():
print i.file_size, i.header_offset
z.infolist()ここで使用されるのは、圧縮パッケージ内のすべてのファイルの情報、つまり ZipInfo のリストです。 ZipInfo オブジェクトには、圧縮パッケージ内のファイルに関する情報が含まれています。最も一般的に使用されるのは、filename、file_size、header_offset です。これらは、それぞれ、圧縮パッケージ内のファイル名、ファイル サイズ、およびファイル データのオフセットです。実際、前の z.namelist() は ZipInfo 内のファイル名を読み取り、それをリストとして返しました。
圧縮パッケージからファイルを解凍する方法は、ZipFile の read メソッドを使用することです:
コードをコピー コードは次のとおりです:
import zipfile
z = zipfile.ZipFile(filename, 'r')
print z.read(z.namelist()[0])
こう読んでください z.namelist()で最初のファイルを出力して画面に出力する もちろんファイルに保存することもできます。次に、zip アーカイブを作成する方法を示します。これは、読み取り方法とよく似ています。
コードをコピーします コードは次のとおりです。
import zipfile, os
z = zipfile.ZipFile(filename, 'w')
# ここでの 2 番目のパラメータは w であり、ここでの filename は圧縮パッケージの名前であることに注意してください
testdir というファイル内のすべてのファイルを圧縮パッケージに追加するとします (ここでは、第 1 レベルのサブディレクトリ内のファイルのみが追加されます):
コードをコピー コードは次のようになります:
if os.path.isdir(testdir):
for d in os.listdir(testdir):
z。 write(testdir+os.sep+d)
# close() を呼び出す必要があります。
z.close()
上記のコードは非常に単純です。別の質問について考えてみましょう。test/111.txt を圧縮パッケージに追加し、それを test22/111.txt としてパッケージに配置したい場合はどうすればよいでしょうか。実際、これは Python ZipFile モジュールの write メソッドの 2 番目のパラメーターの役割です。次のように呼び出します。
コードをコピー コードは次のとおりです。
z.write("test/111. txt", " test22/111.txt")
上記は、Python ZipFile モジュールについて紹介した関連知識です。