裏表(Phinloda のもう裏だか表だか分からないページ)

コンピュータ・プログラミング系の話がメインのそれなりにごちゃごちゃしたネタばかり出てくるサイトです。多分。
<< ウインドウのフォーカスが制御できなくなることがあるのだが | Top | データをハードディスクに移動したのだが (4) >>
データをハードディスクに移動したのだが (3)

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

| Windows | 17:28 | comments(0) | trackbacks(0)
スポンサーサイト
| - | 17:28 | - | -
コメント
コメントする









この記事のトラックバックURL
http://phinloda.jugem.cc/trackback/4690
トラックバック
Powered by "JUGEM"
▲このページの先頭へ
CALENDAR
S M T W T F S
1234567
891011121314
15161718192021
22232425262728
2930     
<< September 2019 >>
NEW ENTRIES
CATEGORIES
ARCHIVES
NEW COMMENTS
NEW TRACKBACKS
LINKS
PROFILE