Python

【Python】第6章第7回:ファイルとディレクトリの操作(osモジュール)

本記事では、Pythonのosモジュールを使ったファイルとディレクトリ操作について解説します。ディレクトリの作成、削除、ファイルの移動やコピーなどの操作を学びましょう。

0. 記事の概要

この記事を読むメリット

  • osモジュールの基礎を理解:ディレクトリやファイルの操作を効率的に行えるようになります。
  • 実践的な知識を習得:ディレクトリ構造をプログラムで管理するスキルを学べます。
  • エラー回避のスキル向上:ファイル操作時のエラー処理方法を理解できます。

この記事で学べること

  • osモジュールの基本機能と用途
  • ファイルやディレクトリの操作方法
  • エラー処理と応用例

1. osモジュールの基本

1.1 osモジュールとは?

osモジュールは、Pythonでファイルやディレクトリを操作するための標準ライブラリです。OS依存の機能にも対応しており、クロスプラットフォームで動作します。

1.2 主な機能

  • ディレクトリの作成・削除
  • ファイルパスの操作
  • 環境変数の取得
  • カレントディレクトリの変更

2. ファイルとディレクトリ操作の基本例

2.1 ディレクトリの作成と削除

# ディレクトリを作成・削除する
import os

os.mkdir("test_dir")  # 新しいディレクトリを作成
print("ディレクトリを作成しました")

os.rmdir("test_dir")  # 空のディレクトリを削除
print("ディレクトリを削除しました")

2.2 ファイルの移動とコピー

# ファイルの移動
import os
import shutil

shutil.move("source.txt", "destination.txt")  # ファイルを移動
print("ファイルを移動しました")

shutil.copy("destination.txt", "copy.txt")  # ファイルをコピー
print("ファイルをコピーしました")
動作解説
  1. os.mkdir()で新しいディレクトリを作成します。
  2. os.rmdir()で空のディレクトリを削除します。
  3. shutil.move()でファイルを別の場所に移動します。
  4. shutil.copy()でファイルのコピーを作成します。

3. 応用例:ディレクトリ構造の操作

3.1 ディレクトリ内のファイル一覧を取得

# ファイル一覧を取得
import os

files = os.listdir(".")  # カレントディレクトリのファイル一覧を取得
print(files)

3.2 再帰的なディレクトリ操作

# 再帰的にディレクトリを操作
import os

for root, dirs, files in os.walk("."):
    print("ディレクトリ:", root)
    print("サブディレクトリ:", dirs)
    print("ファイル:", files)

4. 練習問題

以下の課題に挑戦してみましょう。

  1. 新しいディレクトリを作成し、その中にファイルを作成してください。
  2. 作成したディレクトリ内のファイルをコピーして、別のディレクトリに移動してください。
  3. ディレクトリ内のファイル一覧を再帰的に取得して出力してください。

5. 練習問題の解答と解説

問1〜3の解答例

# 問1: ディレクトリとファイルの作成
import os

os.mkdir("example_dir")
with open("example_dir/file.txt", "w") as file:
    file.write("こんにちは、Python!")

# 問2: ファイルのコピーと移動
import shutil

shutil.copy("example_dir/file.txt", "copied_file.txt")
shutil.move("copied_file.txt", "example_dir/moved_file.txt")

# 問3: ファイル一覧を再帰的に取得
for root, dirs, files in os.walk("example_dir"):
    print("ディレクトリ:", root)
    print("サブディレクトリ:", dirs)
    print("ファイル:", files)

6. まとめ

本記事では、Pythonのosモジュールを使ったファイルとディレクトリ操作について学びました。このスキルを活用して、より効率的なファイル管理を行いましょう。