Pythonでファイル・フォルダを移動・コピーする方法【shutilモジュールの使い方】

Pythonでファイルやフォルダを移動するときに使うshutilモジュールでの2つの関数を紹介します。

python-shutil公式サイト

この内容を理解するにあたり、ルートディレクトリ、カレントディレクトリ、相対パス、絶対パスのを知っておく必要があります。

関連記事

今回は「ルートディレクトリ・カレントディレクトリ・ファイルパス」の説明をします。 もし、「ディレクトリ」という言葉が分からない場合は下の記事をご覧ください。 [sitecard subtitle=関連記事 url="https[…]

超基本 ファイルパスとルートディレクトリ カレントディレクトリ
関連記事

パソコンを使ったことがあるのなら一度は聞いたことがあるとは追うこれらの言葉「ファイル・フォルダ・ディレクトリ」の違いを説明していきたいと思います。 本棚に本がたくさん入っているようにフォルダ(ディレクトリ)の中にファイルが入っている[…]

ファイル・フォルダ・ディレクトリの違いと拡張子

移動(shutil.move)

ファイルの移動

  • shutilモジュールをインポート
  • 第1引数にファイルパスを指定
  • 第2引数に移動先のフォルダパスを指定

これらの点に注意しながら、以下のblogフォルダの「sample.txt」ファイルを「folder2」に移動します。

これを実行すると何も表示されませんが、以下のようにファイルの移動はできています。

フォルダの移動

第1引数に移動したいフォルダのパスを指定するだけです。

先ほどの「folder2」を「folder1」に移動すると以下のようになります。

フォルダの名前を変更

移動先のフォルダとして存在しないフォルダ名を指定すると新しくフォルダが作られます。

「folder1」の移動先を「folder3」とした場合はこのフォルダは存在しないので名前が変更されます。

コピー

ファイルコピー(shutil.copy)

  • shutilモジュールをインポート
  • 第1引数にファイルパスを指定
  • 第2引数にコピー先のフォルダパスを指定

「step1.txt」ファイルを「folder2」へコピーすると以下のようなコードになります。

フォルダのコピー(shutil.copytree)

  • 第1引数にコピーしたいフォルダパスを指定
  • 第2引数にコピー先の新規フォルダパスを指定

「folder2」のコピーとして「folder3」の新規作成します。

既存のフォルダ内にコピーすることはできません。「FileExistsError」になってしまいます。

まとめ

  • shutil.move関数:ファイルやフォルダの移動
  • shutil.copy関数:ファイルのコピー
  • shutil.copytree関数:フォルダを新規フォルダにコピー

関連記事

プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]

【独学】Pythonを学習できる無料&有料教材7選