今回はPythonのosモジュールを使ったパスの操作方法を紹介していきます。
Pythonのプログラムを書く際に、ファイルやディレクトリのパスを操作する必要がある場面はよくあります。
そのような場面で頼りになるのが、Pythonの標準ライブラリであるosモジュールです。
osモジュールには、さまざまなパス操作用の便利な関数が用意されており、その中でも特によく使われる関数についてご紹介します。
join、sep、split、getcwd、listdir、mkdirsといった関数を使いこなせば、ファイルやディレクトリのパスを効率的に操作できるようになります。
また動画もあるので必要に応じてご覧ください。
Pythonでパスやディレクトリを操作する方法
まずはosモジュールをインポートしておきます、外部ライブラリではないのでインストールコマンドの実行は不要です。
osモジュールには便利なメソッドがあり例えばsepと実行すると使っているパソコンのパスセパレータが表示されます。
Windowsなら「¥」でMacなら「/」になります。
import os
print(os.sep) # ¥もしくは/が表示される
続いてパスの作成になります、引数にディレクトリ名もしくはファイル名を順番に書いていくだけです。
import os
pass1 = os.path.join(".","home","user")
print(pass1) # ./home/user と表示される
すでにあるパスの末尾を取得することがありますがsplitというメソッドで実行できます。
結果はタプル型になっていて左が末尾以外、右が末尾のものになります。
サイトのクエリやページ名を取得したいときに便利です。
import os
pass1 = os.path.join(".","home","user")
# ここを追加
end1 = os.path.split(pass1)
print(end1) # ('./home', 'user')と表示される
パスの末尾と同じような用途で現在のディレクトリを確認したい時がありますがgetcwdというメソッドで取得できます。
ちなみにGoogleコラボトリーであればカレントディレクトリは「/content」になります。
import os
print(os.getcwd()) # /contentと表示される
また現在いるディレクトリのパス一覧はlistdirというメソッドで取得できます。
結果はリストとして表示されます。
ちなみにGoogleコラボトリーであればカレントディレクトリは「[‘.config’, ‘.ipynb_checkpoints’, ‘sample_data’]」になります。
import os
print(os.listdir(r"/content"))
# ['.config', '.ipynb_checkpoints', 'sample_data']と表示される
新しくディレクトリを作成するときにはmakedirsというメソッドで引数は「r”ディレクトリ名”」という形で指定します。
import os
os.makedirs(r"./test") # testというディレクトリが作成される
ちなみにディレクトリの削除だけは別のモジュールでshutilというものが必要になりますので注意してください。
import os
os.makedirs(r"./test") # testというディレクトリが作成される
# ここを追加
import shutil
shutil.rmtree(r"./test") # testというディレクトリが削除される