データをハードディスクに移動したのだが (3)

0

    1000個程度のファイルをエクスプローラーで移動すると10分以上かかる件。 Python で一覧を出すだけなら15秒、という事実を紹介したが、 実際にファイル移動まで実行するプログラムを書いた。 移動する関数はこんな感じ。

    import os, sys
    import shutil
    from stat import *
    
    def mover(srcdir, dstdir, ts_begin, ts_end):
        for f in os.listdir(srcdir):
            pathname = os.path.join(srcdir, f)
            mode = os.stat(pathname).st_mode
            if S_ISREG(mode):
                ctime = os.stat(pathname).st_ctime
                if ctime >= ts_begin and ctime < ts_end:
                    shutil.move(pathname, dstdir)
    

    実際はいろいろデバッグ用にメッセージ出したり経過時間を出したり移動したファイル数を数えて出したりしているが、基本になる処理はこれで合っていると思う。 試しにやってみたのが、SSD間の転送だからズルいのだが、

    939 files
    40.077811s

    こんな感じで処理できている。 エクスプローラだと10分以上かかる処理が1分以内で終わっているから万歳、ってとこである。 あとは転送先を USB 外付け HDD にすると、どれ位時間がかかるかだ。

    JUGEMテーマ:Windows


    スポンサーサイト

    0
      • 2024.03.10 Sunday
      • -
      • 17:28
      • -
      • -
      • by スポンサードリンク

      コメント
      コメントする








         
      この記事のトラックバックURL
      トラックバック

      PR

      calendar

      S M T W T F S
           12
      3456789
      10111213141516
      17181920212223
      24252627282930
      31      
      << March 2024 >>

      selected entries

      categories

      archives

      recent comment

      recent trackback

      links

      profile

      search this site.

      others

      mobile

      qrcode

      powered

      無料ブログ作成サービス JUGEM