新しいファイルだけ上書きコピーする

今までshutilとかでチマチマやってたけど、Windowsなら「xcopy」コマンドを使えばよい事に気付いた。
主なオプションは以下の通り。

/D 新しいファイルだけをコピー
/S /E サブフォルダもコピー
/H 隠しファイルもコピー
/C エラーを無視してコピー
/Y 無条件上書きコピー
/R 読み取り専用ファイルもコピー
/EXCLUDE: 除外したいファイル/フォルダが書かれたファイルを指定

以下、/EXCLUDE:で指定するファイルの例。

\.hg\
\.bzr\
.db
~

上の例では、フォルダは.hgと.bzr、ファイルは.dbや~が付いているファイルが除外される。
(絶対パスで一部でもマッチされる部分があれば除外される)

pythonで書くと以下のとおり、pythonというよりWindowsの機能だが・・・

import subprocess
src = "src_dir"
dst = "dst_dir"
exclude = "exclude.txt"

subprocess.call("xcopy %s %s /D /S /Y /EXCLUDE:%s"%(src, dst, exclude))

※まだ試していないので間違いがあるかも、試したら改めて更新します。