心魅 - cocoromi -

半角スペース時々全角

pythonでファイルのコピー・移動

pythonでファイル操作(not中身)をするときにはosパッケージかshutilパッケージを使います。

コピー

コピーはshutilパッケージで出来ます。


ex) ディレクトリをコピーする

import shutil
shutil.copytree( "dir1" , "dir2" )

shutilパッケージでは主にコピーと再帰的にディレクトリを処理するAPIを提供してくれます。

  • copyfile
  • copytree
  • rmtree

移動

移動はosパッケージに用意されています。

ex) ディレクトリ操作

import os
os.mkdir( "dir" )
os.rename( "dir" , "folder" )
os.remove( "folder" )

osパッケージではこれ以外にも細かいAPIまで用意されています

  • symlink
  • chown

まとめ

コピーはshutil
移動はos


で、なんで別れてるの?

付録

shutil.copy( src , dist )

@param src コピー元のファイルパス。ディレクトリはダメ。
@param dist コピー先のパス
srcからdistへコピー。distの挙動はcpコマンドと同じ。

shutil.copytree( src , dist )

@param src コピー元のディレクトリパス。ファイルはだめ。
@param dist コピー先のパス
だいたいcp -rと思えばOK

shutil.rmtree( target )

@param target 削除するディレクトリパス。ファイルはだめ。
rm -rfと思えばOK。

os.rename( src , dist )

@param src 移動・リネームするファイルパス
@param dist 処理先のパス
mvコマンド