3

Python でzipfileモジュールを使用して単純な zip ファイルを作成しようとしています。

import zipfile

files = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h')
zip_file_name = 'zipfile_test.zip'

zfh = zipfile.ZipFile(zip_file_name, 'w')
for file in files:
  print 'Archiving file %s' % file
  zfh.write(zip_file_name)
zfh.close()

ファイルは私の作業ディレクトリにあり、空touch a b c d e f g hです。テストに使用します。

最初の 7 項目を zip ファイルに追加した後、最後の項目でハングしますが、スペースがなくなるまで zip ファイルへの書き込みを続けます。これは、私がテストした 2 つのシステムで発生します。1 つは Python 2.4.3 で、もう 1 つは Python 2.6.2 です。ファイルの数が 6 または 7 未満の場合、zip ファイルは問題なく作成されます。そうしないと、7 ~ 15 個のファイルの後で失敗し、ファイルの最後にジャンクを書き込み始めます。私は変更しようとしました:

  zfh.write(zip_file_name)

に:

  zfh.write(zip_file_name, zip_file_name, zipfile.ZIP_DEFLATED)

これにより、さらにいくつかのファイルを書き込むことができる場合もありますが、必然的に失敗することもあります。

私は何を間違っていますか?

4

1 に答える 1

9

zipファイルをzipファイルに入れています:

zfh.write(zip_file_name)

次のようにする必要があります。

zfh.write(file)
于 2010-01-21T16:15:02.797 に答える