ファイルのコピーは、コピー元ファイル、コピー先ファイルをopenして、コピー元を読み込みながら、コピー先に書き込めばできるが、もっとシンプルに元と先のファイルパスだけ指定してコピーしたい場合は、shutilモジュールのcopyfileを使うことでできる。
shutilモジュールには、高レベルなファイル操作が用意されている。OSのシェルコマンドを使えば簡単な操作だが、プログラムで実装すると手間な処理を簡単に実装できる。(OSのシェルコマンドは使用しないので環境依存しない)
ディレクトリをツリーごと作成
>>> import os >>> os.makedirs('/tmp/foo/bar/hoge') # /tmp/foo/bar/hoge のディレクトリツリーを作成。(親ディレクトリがなければ作成)
ファイルのコピー(shutil.copy)
>>> import shutil >>> shutil.copy("/tmp/src", "/foo/dst") # /tmp/srcを /foo/dst にコピー
ディレクトリまるごとコピー(shutil.copytree)
>>> import shutil >>> shutil.copytree("/tmp/srcdir", "/foo") # /tmp/srcdirの配下のファイルも含めてまるごと/fooにコピーする
ディレクトリまるごと削除(shutil.rmtree)
os.rmdirでは、ディレクトリ内にファイルが存在する場合に削除できないが、shutil.rmtreeは削除できる。
>>> import shutil >>> shutil.rmtree("/tmp/foo") # /tmp/foo ディレクトリツリー全体を削除
ファイルの移動(shutil.move)
>>> import shutil >>> shutil.move("/tmp/src", "/tmp/dst") # /tmp/srcを/tmp/dstに移動