4

私は小さなアプリを作成しました。基本的に、ある時点で、ファイルを宛先にコピーする distutils.dir_util.copy_tree を呼び出します。次のような基本的な進行状況バーをリンクするのを手伝ってくれる人はいますか?

[======]50%

コピープロセスに...残念ながら、フォルダツリーは時々異なるため、フォルダツリーをコピーするのに時間がかかるとは思いません。私に答えてくれる人に前もって感謝します。

4

3 に答える 3

3

distutils.dir_util.copy_tree()これに使用できるコールバックは提供されません。os.walk()ファイルシステム オブジェクトを列挙するために を使用してshutil.copy[2]()から、実際のオブジェクトをコピーするためにを使用する必要があります。

于 2012-04-10T18:47:33.607 に答える
0

Python のドキュメントで説明されているように、shutil.copytree へのコールバックを提供できます。

from shutil import copytree

def _countFiles(path, names):
    #do someting with "path" and "names"
    return []   # nothing will be ignored

copytree(source, destination, ignore=_countFiles)

私は進歩を得るためにコードを書いていませんが、要点はわかります:

  1. ディレクトリ(およびサブディレクトリ)内のファイルを数える
  2. 「_countFiles」で、処理されたファイルの数をインクリメントします
  3. 進行状況 = nb_processed_files * 100 / nb_total_files

よろしく

于 2013-07-02T21:36:36.847 に答える
0

Corey Glodberg は、コマンド ライン アプリケーションで ascii プログレス バーを実行するための単純なライブラリについて書いています。

http://coreygoldberg.blogspot.com.es/2010/01/python-command-line-progress-bar-with.html

于 2012-04-10T18:53:42.550 に答える