Pythonを使ったファイル操作や環境設定は、osモジュールが担う非常に重要な役割です。
本記事では、osモジュールのインポート方法から、ディレクトリの操作、環境変数の取得・設定、パスの扱いまで、初級者向けにわかりやすく解説します。
最後には学んだ内容を定着させるための演習問題と解答例を掲載しています。まずは、osモジュールの基本を押さえましょう。
osモジュールとは
Python標準ライブラリの一部であるosモジュールは、ファイルやディレクトリの操作、環境変数の取り扱い、プロセス管理など、OS依存の機能を提供します。
Windows、macOS、Linuxなど、プラットフォームに依存しないコードを書く際に重宝します。
import os
print(os.name) # 実行中のOS名を表示('posix'や'nt'など)
カレントディレクトリ(作業ディレクトリ)の操作
カレントディレクトリの取得
current_dir = os.getcwd()
print("現在の作業ディレクトリ:", current_dir)
カレントディレクトリの変更
os.chdir('/path/to/directory') # 作業ディレクトリを変更
ファイル・ディレクトリ一覧の取得
# 指定ディレクトリ内のファイル・フォルダ名をリストで取得
items = os.listdir('.')
for name in items:
print(name)
# 詳細な情報を取得したい場合は os.stat を利用
info = os.stat('example.txt')
print(info.st_size) # ファイルサイズ
ファイル・ディレクトリの作成と削除
ディレクトリの作成
os.mkdir('new_folder') # 単一のフォルダを作成
os.makedirs('parent/child') # 階層ごと作成
ファイルの削除
os.remove('old_file.txt') # ファイルを削除
ディレクトリの削除
os.rmdir('empty_folder') # 空のフォルダを削除
os.removedirs('a/b/c') # 階層ごと削除
環境変数の取得と設定
環境変数は、アプリケーションの設定や秘密情報を管理するのに便利です。
# 環境変数の取得
path_var = os.getenv('PATH')
print(path_var)
# 環境変数の設定(現在のプロセス内のみ有効)
os.environ['MY_VAR'] = '12345'
print(os.environ['MY_VAR'])
パス操作の基本
os.pathサブモジュールを使うと、異なるOS間でも安全にパスを操作できます。
from os import path
# パスの結合
a = 'folder'
b = 'file.txt'
full_path = path.join(a, b)
print(full_path)
# ファイルやディレクトリの存在確認
print(path.exists(full_path))
print(path.isfile(full_path))
print(path.isdir(a))
# 拡張子の分離
name, ext = path.splitext(full_path)
print(name, ext)
まとめ
osモジュールをマスターすると、Pythonでのファイル操作や環境設定が自在に行えるようになります。
本記事で紹介した機能は、実務やスクリプト開発の基本となる部分です。
演習問題
下記の問題にチャレンジし、実際にコードを書いて動作を確認してください。
- カレントディレクトリにtest_dirというフォルダを作成し、作成されたかどうかを確認する。
- test_dir内にhello.txtというファイルを作成し、文字列「Hello, os!」を書き込む。
- 作成したhello.txtのサイズ(バイト数)を取得して表示する。
- 環境変数MY_TESTに任意の文字列を設定し、取得して表示する。
- test_dirフォルダとその中身を全て削除する。
解答例
import os
from os import path
# 1. フォルダ作成
os.mkdir('test_dir')
print(path.isdir('test_dir')) # Trueなら成功
# 2. ファイル作成と書き込み
file_path = path.join('test_dir', 'hello.txt')
with open(file_path, 'w', encoding='utf-8') as f:
f.write('Hello, os!')
# 3. ファイルサイズ取得
size = os.stat(file_path).st_size
print(f"hello.txt のサイズ: {size} バイト")
# 4. 環境変数設定・取得
os.environ['MY_TEST'] = 'PythonMaster'
print(os.getenv('MY_TEST'))
# 5. ファイルとフォルダの削除
os.remove(file_path)
os.rmdir('test_dir')
print(path.exists('test_dir')) # Falseなら成功
以上で、Pythonのosモジュール初級編の解説と演習問題を終わります。
この記事を通じて、osモジュールの基本操作をしっかり身につけ、さまざまなファイル操作や環境設定を自分のスクリプトで活用してみてください。