カテゴリ: Python 更新日: 2025/10/17

Pythonのファイルコピー・移動・削除の方法を完全ガイド!初心者でもわかるshutilモジュールの使い方

Pythonでファイルをコピー・移動・削除する方法(shutilモジュール)
Pythonでファイルをコピー・移動・削除する方法(shutilモジュール)

先生と生徒の会話形式で理解しよう

生徒

「Pythonでファイルをコピーしたり、移動したり、削除したりってできますか?」

先生

「もちろん可能ですよ!Pythonにはshutil(シャトル)というモジュールがあって、ファイル操作が簡単にできるようになっています。」

生徒

「しゅ…シャトル?それってどうやって使うんですか?」

先生

「まずは、コピー・移動・削除の基本から一緒に見ていきましょう!」

-

1. shutilモジュールとは?

1. shutilモジュールとは?
1. shutilモジュールとは?

shutil(シャトル)モジュールは、Pythonでファイルやフォルダをコピー・移動・削除するための便利な道具箱のようなものです。

普段、パソコンでマウスを使ってファイルをドラッグ&ドロップしたり、ゴミ箱に入れたりしますよね?それと同じことが、Pythonのプログラムでもできるようになるのがshutilです。

2. ファイルをコピーする方法(copy)

2. ファイルをコピーする方法(copy)
2. ファイルをコピーする方法(copy)

まずは、ファイルをコピーする方法から説明します。コピーとは、元のファイルをそのままにして、別の場所に同じファイルを作る操作です。

Pythonでは、以下のように書きます:


import shutil

# ファイルをコピー
shutil.copy("example.txt", "backup/example_copy.txt")

example.txtという元のファイルを、backupというフォルダの中にexample_copy.txtという名前でコピーしています。

コピーの対象は「ファイル」です。「フォルダごとコピーしたい」場合は、次のようにcopytreeを使います:


shutil.copytree("images", "backup/images_copy")

注意点:コピー先のフォルダがすでに存在するとエラーになります。事前に削除するか、別名にしておきましょう。

3. ファイルを移動する方法(move)

3. ファイルを移動する方法(move)
3. ファイルを移動する方法(move)

次はファイルを移動する方法です。移動とは、元の場所から別の場所にファイルを引っ越しさせるイメージです。


shutil.move("example.txt", "moved/example.txt")

example.txtmovedフォルダの中に移動させます。この操作をすると、元の場所からはexample.txtが消えます。

パソコンで「カット&ペースト」するようなイメージですね。

4. ファイルやフォルダを削除する方法(osやshutil)

4. ファイルやフォルダを削除する方法(osやshutil)
4. ファイルやフォルダを削除する方法(osやshutil)

削除には注意が必要です。一度削除すると、元に戻すのが大変です。

ファイルを削除するにはos.remove()を、フォルダを削除するにはshutil.rmtree()を使います。


import os
import shutil

# ファイルを削除
os.remove("moved/example.txt")

# フォルダごと削除
shutil.rmtree("backup")

ファイルだけならos.remove()でOKですが、フォルダの中には複数のファイルがあるため、shutil.rmtree()で丸ごと削除します。

-

5. ファイル操作前に存在チェックをしよう

5. ファイル操作前に存在チェックをしよう
5. ファイル操作前に存在チェックをしよう

いきなり削除やコピーを行うと、ファイルが存在しなかったり、エラーになることがあります。そんなときは、os.path.exists()で確認してから操作しましょう。


import os

if os.path.exists("example.txt"):
    print("ファイルがあります")
else:
    print("ファイルが見つかりません")

6. shutilを使った簡単なファイル整理プログラム例

6. shutilを使った簡単なファイル整理プログラム例
6. shutilを使った簡単なファイル整理プログラム例

それでは、ここまで学んだことを使って、ファイル整理を自動化するサンプルを見てみましょう。

指定されたフォルダにあるすべての画像ファイル(.jpg)を、imagesというフォルダにまとめて移動します。


import os
import shutil

source_folder = "downloads"
target_folder = "images"

# フォルダがなければ作成
if not os.path.exists(target_folder):
    os.makedirs(target_folder)

# 拡張子が.jpgのファイルを移動
for filename in os.listdir(source_folder):
    if filename.endswith(".jpg"):
        shutil.move(
            os.path.join(source_folder, filename),
            os.path.join(target_folder, filename)
        )

このようにPythonとshutilを使えば、毎回マウスで操作しなくても、決まった作業を自動で行うことができます。

7. よくあるエラーと対処法

7. よくあるエラーと対処法
7. よくあるエラーと対処法
  • PermissionError: ファイルを操作する権限がない場合に出ます。ファイルが開いたままになっていないか確認しましょう。
  • FileNotFoundError: コピー元や移動元のファイルが存在しないと出ます。os.path.exists()で事前にチェックを!
  • FileExistsError: コピー先に同じ名前のフォルダがすでにあると出ます。フォルダ名を変えるか、削除してから実行しましょう。

8. Pythonでできるその他のファイル操作

8. Pythonでできるその他のファイル操作
8. Pythonでできるその他のファイル操作

shutilだけでなく、Pythonでは他にも便利なファイル処理機能がたくさんあります。

  • open()でファイルを開く(読み込み・書き込み)
  • os.rename()でファイル名を変更
  • os.makedirs()でフォルダを作成

たとえば、ファイル名を変更するにはこのように書きます:


os.rename("old_name.txt", "new_name.txt")
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
PHPでメールフォームを作る方法を徹底解説!初心者向けにmail関数とPHPMailerの使い方も紹介
人気記事
No.1
PHP&Python記事人気No1
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
PHP&Python記事人気No2
Pythonのリストを辞書に変換する方法(dict() / zip())
No.3
PHP&Python記事人気No3
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.4
PHP&Python記事人気No4
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
-