Python os ライブラリ完全ガイド

Python 標準ライブラリの os は、オペレーティングシステムと連携し、ファイルシステムの管理、環境変数の制御、プロセスの管理などを実行することができます。本記事では、os ライブラリの基本概念から実践的な使用例までを詳しく解説します。

1. os ライブラリ概要

  • os はオペレーティングシステム(OS)関連の機能を提供する標準ライブラリです。
  • ファイルやディレクトリの管理、環境変数の取得・設定、プロセスの実行などをサポートします。
  • クロスプラットフォーム(Windows、macOS、Linux)に対応しています。

インストール方法

os ライブラリは Python の標準ライブラリであるため、特別なインストールは不要です。

import os
## 2. 主な機能と使用例 ### (1) カレントディレクトリの確認と変更
import os

# カレントディレクトリの取得
print(os.getcwd())

# カレントディレクトリの変更
os.chdir('/path/to/directory')
print(os.getcwd())
**使用例:** プロジェクトのログファイルを特定のフォルダに保存する必要があるとき、現在の作業ディレクトリが分からない場合は `os.getcwd()` で確認し、`os.chdir()` で変更できます。 ### (2) ディレクトリの作成と削除
# ディレクトリの作成
os.mkdir('test_folder')

# サブフォルダを含むディレクトリの作成
os.makedirs('parent_folder/child_folder')

# ディレクトリの削除
os.rmdir('test_folder')  # 空のフォルダのみ削除可能
os.removedirs('parent_folder/child_folder')
**使用例:** 新しいプロジェクトでフォルダ構造を作成するとき、手作業では面倒ですが、`os.makedirs()` を使用すれば一度にフォルダを作成できます。 ### (3) ファイル一覧の取得
# 現在のディレクトリ内のファイルとフォルダをリストアップ
print(os.listdir('.'))
**使用例:** ディレクトリ内にどのファイルがあるか確認したいとき、ファイルマネージャを開かずに `os.listdir()` で一覧を取得できます。 ### (4) ファイルの削除と移動
# ファイルの削除
os.remove('test.txt')

# ファイルの移動と名前変更
os.rename('old_name.txt', 'new_name.txt')
**使用例:** 業務の自動化で不要なログファイルを整理する場合、`os.remove()` を使って効率的に削除できます。 ### (5) 環境変数の取得と設定
# 環境変数の取得
print(os.environ.get('HOME'))  # macOS/Linux
print(os.environ.get('USERPROFILE'))  # Windows

# 環境変数の設定
os.environ['MY_ENV'] = 'hello'
print(os.environ.get('MY_ENV'))  # 'hello'
**使用例:** API キーやユーザー設定を環境変数として管理すれば、セキュリティを強化できます。 ### (6) システムコマンドの実行
import os

# システムコマンドの実行(Windows: 'dir', macOS/Linux: 'ls')
os.system('ls')

# コマンド実行結果を取得
output = os.popen('ls').read()
print("コマンド実行結果:")
print(output)
**使用例:** スクリプト実行後に特定のシステムコマンドを呼び出す必要がある場合、`os.system()` を使用して自動化できます。 ### (7) パス操作
import os

# パスの結合
path = os.path.join("folder", "file.txt")
print("結合されたパス:", path)

# 絶対パスの取得
abs_path = os.path.abspath("file.txt")
print("絶対パス:", abs_path)

# パスの分割
dirname, filename = os.path.split(abs_path)
print("ディレクトリ名:", dirname)
print("ファイル名:", filename)
**使用例:** ファイルの保存場所を動的に決定したいとき、`os.path.join()` を利用すれば、異なるOSでも適切なパスを作成できます。 ### (8) ファイルサイズの取得
import os

# ファイルサイズの取得
file_size = os.path.getsize("example.txt")
print("ファイルサイズ:", file_size, "バイト")
**使用例:** ファイルのサイズを取得して、特定の制限を超える場合に警告を出すなどの処理が可能です。 ### (9) 一時ディレクトリの取得
import os
import tempfile

# 一時ディレクトリの取得
temp_dir = tempfile.gettempdir()
print("一時ディレクトリ:", temp_dir)
**使用例:** 一時ファイルを作成する際に `tempfile.gettempdir()` を使用して適切なディレクトリを取得できます。 ### (10) シンボリックリンクの作成と確認
import os

# シンボリックリンクの作成
os.symlink("target.txt", "symlink.txt")

# シンボリックリンクの確認
if os.path.islink("symlink.txt"):
    print("symlink.txt はシンボリックリンクです")
**使用例:** シンボリックリンクを作成して、複数のディレクトリから共通のファイルにアクセスできるようにすることができます。 ## 4. `os` vs `shutil` 比較 | 機能 | `os` ライブラリ | `shutil` ライブラリ | |---------------------|---------------|-----------------| | ディレクトリの作成・削除 | ✅ | ❌ | | ファイルの削除・移動 | ✅ | ✅ | | 環境変数の制御 | ✅ | ❌ | | システムコマンドの実行 | ✅ | ❌ | | ファイルやフォルダのコピー | ❌ | ✅ | ## まとめ Python の `os` ライブラリは OS と連携するための重要なライブラリです。ファイルシステムの管理、環境変数の制御、システムコマンドの実行などを活用して、より強力なプログラムを作成しましょう! 🚀