カテゴリ: Python 更新日: 2025/12/02

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")

まとめ

まとめ
まとめ

今回の内容では、Pythonで日常的に行われるファイルコピー・移動・削除といった基本操作を、初心者にも分かりやすい形で整理しました。特に、しゅといると読むshutilモジュールは、複雑に感じやすいファイル操作を簡単な命令だけで実現できる便利な仕組みであり、プログラムによる自動化作業を大きく助けてくれます。ふだんの生活でも、ファイルを整理したり画像をまとめたりといった作業は頻繁に必要になりますが、それをPythonが代わりに処理してくれることで、時間の節約や作業ミスの減少につながります。また、ファイルの存在チェックを行うことで安全に作業できる点も重要で、誤った削除やエラーの発生を未然に防ぐ役に立ちます。 さらに、フォルダ内の特定の拡張子だけを抽出して移動する仕組みなどは、実務でもよく使われる便利なパターンであり、画像整理やログファイルの管理、自動バックアップ処理など幅広い用途で活躍します。しゅといるのcopy、copytree、move、rmtreeといった関数の特徴と使い分けを理解することで、より柔軟なファイル操作が可能になります。特に、削除操作は誤ると元に戻せないことが多いので、os.path.existsによる安全確認は欠かせません。Pythonによるファイル整理は、最初はむずかしそうに感じても、一度慣れてしまえばとても直感的ですし、手作業では面倒な部分をあっという間に自動化してくれる力があります。 また、しゅといるに加えてosモジュールを組み合わせることで、さらに細かい操作も可能になります。フォルダ作成、ファイル名変更、パスの結合など、シンプルながら重要な処理を組み合わせることで、ひとつのスクリプトの中で多くの作業をまとめて行えるのがPythonの大きな魅力です。実際の開発現場でも、こうしたファイル整理プログラムは頻繁につかわれています。画像整理、バックアップ作成、ログファイルの自動分類など、Pythonはさまざまな場面で頼れる存在になってくれます。 以下は、今回学んだ内容を応用したサンプルプログラムの例です。記事内と同じようにfw-boldfs-4などのクラスを使いながら、簡単なファイル整理のコードを再掲して理解を深められるようにしています。

サンプルプログラム(復習用)


import os
import shutil

source_folder = "input_data"
backup_folder = "backup_data"

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

# テキストファイルだけをコピーしてバックアップ
for filename in os.listdir(source_folder):
    if filename.endswith(".txt"):
        shutil.copy(
            os.path.join(source_folder, filename),
            os.path.join(backup_folder, filename)
        )

# バックアップ後に元ファイルを移動
archive_folder = "archive"
if not os.path.exists(archive_folder):
    os.makedirs(archive_folder)

for filename in os.listdir(backup_folder):
    shutil.move(
        os.path.join(backup_folder, filename),
        os.path.join(archive_folder, filename)
    )

上記のような仕組みを使えば、複数のフォルダをまたいだ整理も自動で行えるため、作業の効率を大きく高められます。Pythonとshutilの連携をしっかり理解しておくことで、実践的なファイル管理スクリプトを自分で作れるようになります。

先生と生徒の振り返り会話

生徒「今日の内容で、Pythonがほんとうに便利だと分かりました。コピー、移動、削除が全部できるのはすごいですね。」

先生「そうですね。特にしゅといるモジュールは、初心者でも扱いやすいのが魅力です。ドラッグアンドドロップのような操作をプログラムで再現できるので、とても強力ですよ。」

生徒「存在チェックをする理由もよく分かりました。まちがって削除するとこわいですもんね。」

先生「そのとおりです。安全に扱うことはとても大切です。今後は、今日のサンプルを参考にしながら、自分でもファイル整理の自動化に挑戦してみてください。」

生徒「はい!Pythonで作業がラクになるのが楽しみです!」

コメント
コメント投稿は、ログインしてください

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

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHPのCookieセキュリティを完全ガイド!初心者でもわかるSecureとHttpOnlyの使い方
New2
PHP
PHPのCSRF対策を完全理解!トークンを使った安全なフォーム送信の仕組みを初心者向けに徹底解説
New3
PHP
PHPのSQLインジェクション対策を完全解説!初心者でも安全にデータベースを扱う方法
New4
PHP
PHPでカウントダウンタイマーを作る方法!初心者向けにやさしく解説
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
Java&Spring記事人気No2
PHP
初心者向けPHPでMySQLからデータを取得する方法(SELECT文)完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonのリストの重複を削除する方法を解説!初心者向けにsetとdict.fromkeysの使い方をやさしく説明
No.4
Java&Spring記事人気No4
Python
Pythonで経過時間を測る方法をやさしく解説!初心者向けtime.perf_counterとtime.sleepの使い方
No.5
Java&Spring記事人気No5
PHP
PHPのXSS対策を完全ガイド!初心者でもわかる安全なWebアプリの作り方
No.6
Java&Spring記事人気No6
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.7
Java&Spring記事人気No7
PHP
PHPのOAuth認証をやさしく解説!Google・Facebookログインを初心者向けに実装しよう
No.8
Java&Spring記事人気No8
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
-
-