「Python」ファイル / ディレクトリの移動
最近、「Python のお勉強シリーズ」と題して、Python の基礎的な内容をお勉強してましたが、やっぱり基礎的な内容だけだと飽きてくるので、ちょっと簡単なツール作って遊んでみました。
※ 「Python のお勉強シリーズ」は現在第10回目・・・
・Python のお勉強10 ( モジュールの作成 ) - プログラム日記
http://a4dosanddos.hatenablog.com/entry/2015/08/23/012323
以下のことをするツールを作りました。
* あるディレクトリ ( baseDir とする ) に存在するファイル / ディレクトリをあるディレクトリに移動させる
* ただし、移動元 / 移動先ディレクトリともに baseDir 内のディレクトリとする
* baseDir に存在するファイル / ディレクトリで移動させたくないものは移動対象外とできる
コードは以下みたい感じになりました。dstDirName、exceptFileDir に存在しないディレクトリ / ファイルを指定すると ValueError でこけちゃいますが、まぁ、移動前でエラーになってもダメージはないのでひとまずこのままで。あとは、大してテストはできてないですが、とりあえず大丈夫かなと思ってます。
■ filemove.py
#coding: cp932 import shutil, os #基底ディレクトリ baseDir = "C:\\test" #移動先ディレクトリ名 dstDirName = "dst" #移動対象外ファイル / ディレクトリ一覧 exceptFileDir = "except1,except2,except.txt" #ファイルの移動 def filemove(src, dst): shutil.move(src, dst) #移動対象ファイル / ディレクトリの一覧をリストで取得 def listdir(): fdlist = os.listdir(baseDir) fdlist.remove(dstDirName) #移動先ディレクトリをリストから削除 if 0 != len(exceptFileDir): #移動対象外ファイル / ディレクトリが指定されている場合のみ処理 exceptFileDirNameList = exceptFileDir.split(",") for i in exceptFileDirNameList: ii = i.strip() #余計な空白を削除 fdlist.remove(ii) #移動対象外ファイル / ディレクトリをリストから削除 return fdlist if __name__ == "__main__": fdlist = listdir() dst = baseDir + "\\" + dstDirName for i in fdlist: src = baseDir + "\\" + i filemove(src, dst) print(src) #移動ファイル / ディレクトリの表示
ディレクトリ一覧の取得、ファイル / ディレクトリの移動は os、shutil モジュールを使ってます。
・16.1. os — 雑多なオペレーティングシステムインタフェース — Python 3.4.3 ドキュメント
http://docs.python.jp/3.4/library/os.html
・11.10. shutil — 高レベルなファイル操作 — Python 3.4.3 ドキュメント
http://docs.python.jp/3.4/library/shutil.html
僕はすぐにデスクトップが散らかっちゃうので、baseDir をデスクトップとして使ってみようかと思います ( わざわざツール使うより絶対ドラッグ&ドロップの方が早いですけどね・・・ )。
以上です。