2016-08-04 9 views
0

アンパックされたアーカイブの結果サイズをアンパックせずに検証して、巨大なアーカイブが私のサーバに保存されないようにする必要があります。 開梱を開始し、サイズが一定のサイズを超えた場合は、開梱を停止してください。 私はすでにlib pyunpackを試しましたが、アンパック用のアーカイブのみが許可されています。 このようなアーカイブ拡張子を検証する必要があります: rar,zip7ztar 多分、私はいくつかのLinux機能を使って、os.systemでそれらを呼び出すことでそれを行うことができます。解凍したアーカイブの解凍を行わずに結果のサイズを調べる。特定のサイズを超えたときにアンパックを停止する

答えて

0

ネイティブのpythonの回答は得られませんが、os.systemに戻る必要がある場合、4つのフォーマットすべてを処理するコマンドラインユーティリティにはスイッチがあり、これを使用してアーカイブの内容を一覧表示できます各ファイルのサイズと、おそらく全体のサイズ:

  • rar:各ファイルや合計サイズの情報が表示されますunrar l FILENAME.rar
  • zipunzip -l FILENAME.zipは、各ファイルのサイズ、タイムスタンプ、および名前を合計サイズと共にリストします。
  • 7z7z l FILENAME.7zには、各ファイルの詳細と合計サイズが記載されています。
  • tartar -tvf FILENAME.tarまたはtar -tvzf FILENAME.tgz(または.tar.gz)には、ファイルサイズを含む各ファイルの詳細が記載されています。合計サイズは提供されませんので、あなた自身で追加する必要があります。

ネイティブのPythonライブラリを見ている場合は、「リスト」または「テスト」機能があるかどうかを確認することもできます。それらは、コマンドラインツールが上記のスイッチを説明するために使用する用語です。したがって、同じ名前がライブラリ作成者によって使用されている可能性があります。

関連する問題