zip64拡張を使用しない場合、Zipファイルのサイズは2GBを超えることはできません。したがって、その制限を超えるファイルに書き込もうとすると機能しません。私は、このような文章を書こうとすると、例外が発生すると思っていましたが、私はそれを引き起こすことができませんでした。このような状況で例外が発生しない場合、どのように書き込みが成功したかどうかを判断するにはどうすればよいでしょうか?ファイルが一杯なので、pythonのZipFile.writestr()が失敗したかどうかを確認するには?
3
A
答えて
0
私はzipアーカイブに大量の文字列を作成しようと例外持っている:スクリプトを使用して
$ python write-big-zip.py
Traceback (most recent call last):
File "write-big-zip.py", line 7, in <module>
myzip.writestr('arcname%d'% i, b'a'*2**30)
File "/usr/lib/python2.7/zipfile.py", line 1125, in writestr
self._writecheck(zinfo)
File "/usr/lib/python2.7/zipfile.py", line 1020, in _writecheck
raise LargeZipFile("Zipfile size would require ZIP64 extensions")
zipfile.LargeZipFile: Zipfile size would require ZIP64 extensions
を:ファイルの内容を取得し、それを保存する方法についてどのように
#!/usr/bin/env python
"""Write big strings to zip file until error."""
from zipfile import ZipFile
with ZipFile('big.zip', 'w') as myzip:
for i in range(4):
myzip.writestr('arcname%d'% i, b'a'*2**30)
+0
なぜ私は例外をキャッチしていないのか分かりませんが、あなたが期待しているように、明らかに1つが発生しています。確認していただいてありがとうございます! –
0
import os
size = os.path.getsize("file") #Get the size of the file.
size = size/1073741824 #Converting bytes to GB.
if size < 2: # < is probably safer than <=
#do the zipping
else:
print "The file is too large!"
これは当然理想的ではありませんが、より良いものが見つかるまでは一時的な解決策として役立つかもしれません。 もう一度、私はこれがzipを使用する非常に良い方法だとは思わない。しかし、適切な例外が存在しなければ、それは一時的な解決策として役立つかもしれない。
+0
まだ開かれているので、これをzipファイルで使用できるかどうかはわかりません。 –
関連する問題
- 1. ストアドプロシージャが成功または失敗したかどうかを確認する
- 2. WiFi認証が失敗したかどうかを確認する方法
- 3. なぜAkismetが鍵確認で失敗したのですか?
- 4. MonkeyrunnerのwaitForConnection()が失敗したかどうかを確認する方法
- 5. Laravel 4でクエリが失敗するかどうかを確認するには?
- 6. XCTestCaseテストが失敗したかどうかを確認する方法
- 7. スクリプトが失敗したかどうかを確認する方法
- 8. VCBUILDが失敗したか成功したかどうかをバッチスクリプトで確認するには
- 9. 挿入が失敗するかどうかを確認するには?ここ
- 10. JENA - SPARQL更新クエリが失敗するかどうかを確認します
- 11. "instanceof"が失敗するかどうか確認してください
- 12. 電子メールの送信がCakePHPで成功/失敗したかどうかを確認しますか?
- 13. ファイルがPythonに存在するかどうかを確認するには?
- 14. 行1のテストケースでチケットの変更が失敗したかどうかを確認します
- 15. iOS:ユーザーがロック解除コードの入力に失敗したかどうかを確認する
- 16. httpが成功したか失敗したかを確認するReactjs
- 17. QLineEditがフォーカスを失うかどうかを確認する
- 18. ファイルの削除が成功したかどうかの確認
- 19. Pythonはgzippedファイルがxmlかcsvかどうかを確認します
- 20. 支払いが成功したか失敗したかを確認します
- 21. ディレクトリが作成されたかどうかを確認すると失敗しますか?
- 22. 直前の実行が失敗したかどうかを確認する方法?
- 23. Android:ファイルがイメージかどうかを確認するには?
- 24. JestのafterEachでテストが失敗したかどうか確認してください
- 25. Cでは、パターンに一致する名前のファイルが存在するかどうかを確認します。
- 26. .close()が失敗したときに、Python 3でファイル記述子はどうなりますか?
- 27. ファイルが変更されたかどうかを確認する
- 28. アプリケーションがcodesignの確認に失敗しました
- 29. python JSONで単一または複数の子があるかどうかを確認する
- 30. Python pandasは、dataframeが空でないかどうかを確認します。
文字列の長さ(1つの文字は1バイト)を確認し、続行するかどうかを選択します。編集:今私はそれについて考える、その方法は非常に効率的ではないかもしれません。 – Griffin
使用しているPythonのバージョンは? Python 2.7.2のドキュメントには、ZIPファイルにZIP64機能が必要であるが、そのファイルにはZIPファイルがある場合に発生する[zipfile.LargeZipFile](http://docs.python.org/library/zipfile.html#zipfile.LargeZipFile)例外があります。有効になっていません。 –
trueの場合、[バグとして報告する]必要があります(http://bugs.python.org/)。エラーは黙ってはいけません。 (編集:あなたが最新のバージョンを使用していると仮定します。) –