私はPythonを使用してzipアーカイブを抽出する方法を知っていますが、パーセンテージでその抽出の進捗状況をどのように正確に表示できますか?Pythonを使用してZipFileを抽出し、進捗率を表示しますか?
答えて
抽出方法ではコールバックが返されないため、getinfo
を使用して圧縮されていないサイズの電子メールを取得し、ブロックから読み込んだファイルを開き、ファイルに保存する場所に書き込みます。
import zipfile
z = zipfile.ZipFile(some_source)
entry_info = z.getinfo(entry_name)
i = z.open(entry_name)
o = open(target_name, 'w')
offset = 0
while True:
b = i.read(block_size)
offset += len(b)
set_percentage(float(offset)/float(entry_info.file_size) * 100.)
if b == '':
break
o.write(b)
i.close()
o.close()
set_attributes_from(entry_info)
これはentry_name
target_name
から
を抽出し、これのほとんどはでもやっている:それは例を望まれる場合は、1つはまたのmtimeを回復しなければならない割合を行くと更新それが戻って進行のためにコールを持っていないかZipFile.extract
方法のソースが_extract_member
を呼び出し
getinfo(member)
で持つZipInfoオブジェクトに名前から変換された
source = self.open(member, pwd=pwd)
target = file(targetpath, "wb")
shutil.copyfileobj(source, target)
source.close()
target.close()
ZipInfoオブジェクトではありませんでした
OK、cool。私はこれが好き。唯一のことは、私のアーカイブにはフォルダが含まれていますが、なんらかの理由でアーカイブが抽出されないことです。ファイルが存在しないことを示す例外が発生します。 –
ファイルエントリ名はパス名であるため、 'some/path/to/some/file'はファイルの名前であり、ディレクトリのエントリはありません。 –
私はそれを持っています。私はzipfileモジュールで抽出メソッドを使用しました... OSモジュールのいくつかの使用と一緒に。ありがとう。 –
- 1. AndroidでのファイルアップロードにApache APIを使用して進捗率を表示します。
- 2. python ZipFileを使用して構造体を保持せずにzipからファイルを抽出しますか?
- 3. CursorLoaderを使用してリストビューを塗り潰す前に進捗インジケータを表示
- 4. C#WebアプリケーションからSSISを呼び出して進捗状況を表示
- 5. SharpZipLibを使用して進捗状況を取得していますか?
- 6. FileReference.load()の全体的な進捗状況を表示します。
- 7. 進捗バーを表示してから、アクティビティを再開するときに非表示にします。
- 8. バッチファイルの進捗率
- 9. 進捗状況ダイアログをテキストビューに添付して表示
- 10. 純粋なPHP/AJAXを使用して進捗状況をアップロードしますか?
- 11. jsonから値を抽出し、Pythonを使用してフィルタリングします
- 12. XHR進捗イベントを使用してMySQLクエリを監視する
- 13. jQuery/ASP - クッキーを使用して進捗状況をアップロードする
- 14. flush()を使用してMAMPの進捗をエコーアウトする方法
- 15. Pythonを使用して.swfからビデオを抽出する
- 16. Pythonを使用してHTMLテーブルからデータを抽出する
- 17. WebページからPythonを使用してセクションを抽出する
- 18. LDAPを使用してCNを抽出していますか?
- 19. OpenCV Pythonを使用してすべてのバウンディングボックスを抽出します
- 20. ブートストラップの進捗バーをカウントダウンタイマーとして使用する
- 21. ダイアログ間で進捗状況を表示
- 22. Django - アクションアクションの進捗状況を表示
- 23. WIXブートストラップインストールアクションの進捗テキストを表示
- 24. Webviewで進捗ダイアログを表示
- 25. 進捗率の計算
- 26. 進捗率の計算
- 27. 正規表現を使用してビデオから値を抽出します。
- 28. ユーザエージェントの一部を抽出して表示できますか?
- 29. YQLを使用してHTMLコンテンツを抽出しますか?
- 30. PHPを使用してAndroidManifest.xmlからデータを抽出します
使用する予定のすべてのグラフィックフレームワークですか? –
あなたが話していることがあれば、Tkinter。私が必要とするのは、テキストパーセンテージを表示できることだけです。 –
やや汚れた回避策は、別のプロセスで抽出を生成し、メインスレッドから抽出されたファイルを監視し、それらのサイズを合計し、 'ZipInfo.file_size'で除算することです。 – Novikov