Pythonで親ディレクトリを取得する方法【pathlibとos.pathの使い方】
Pythonでファイルパスから親ディレクトリ(上位フォルダ)を取得したい場面はよくあります。この記事では、Python 3.4以降で使えるpathlibモジュールを使ったモダンな方法と、古いバージョンでも動作するos.pathモジュールを使った方法の2つを紹介します。
方法1:pathlibモジュールを使う(Python 3.4以降)
Python 3.4以降では、pathlibモジュールのPath.parent属性を使うことで、直感的かつ簡潔に親ディレクトリを取得できます。現在のPython開発では、こちらの方法が推奨されています。
コード例
from pathlib import Path
print(Path('/home/username').parent)実行結果
上記のコードを実行すると、以下の出力が得られます。
/home
さらに、.parentを連続して指定することで、2階層以上上のディレクトリも簡単に取得できます(例:Path('/home/username').parent.parent)。
方法2:os.pathモジュールを使う(旧バージョン対応)
古いバージョンのPythonを使用している場合は、os.path.join()でパスに「..」(親ディレクトリを表す記号)を連結し、その結果をos.path.abspath()で絶対パスに変換する方法が使えます。
コード例
import os
print(os.path.abspath(os.path.join('/home/username', '..')))実行結果
上記のコードを実行すると、以下の出力が得られます。
/home
まとめ
- Python 3.4以降:読みやすく安全な
pathlib.Path().parentの使用を推奨 - 旧バージョン:
os.path.abspath(os.path.join(パス, '..'))で代用可能
新しいプロジェクトでは、オブジェクト指向で扱いやすいpathlibを採用することで、コードの可読性と保守性が向上します。
-
PythonとMatplotlibで点群の中心座標を取得・可視化する方法
一連のポイント(点群)の中心を求めるには、リスト内のすべての要素を合計し、その合計値をリストの要素数(長さ)で割ります。この計算結果が、対応する各軸における中心座標となります。これはいわゆる「平均値」であり、点群の重心を表します。実装の手順データポイントとして x 座標と y 座標の2つのリストを作成します。plot() メソッドを使って、x および y のデータポイントをプロットします。x と y の各リストから、sum() と len() を組み合わせて中心座標のタプルを算出します。算出した中心点をグラフ上にプロットします。annotate() メソッドを使い、中心点に「center」とい
-
Python Tkinterでルートウィンドウを非表示・破棄する2つの方法
Tkinterアプリケーションのテスト中に、デフォルトのウィンドウやフレームを一時的に隠したい、あるいは完全に閉じたいという場面に遭遇することがあります。Tkinterでは、withdraw()メソッドによる「非表示」と、destroy()メソッドによる「破棄」の2つのアプローチが用意されています。mainloop()とウィンドウのライフサイクルmainloop()は、外部イベントによってウィンドウが閉じられるまで、Tkinterアプリケーションを実行し続ける役割を担います。このメインループが動作している間、ウィンドウは画面上に表示され続けます。ウィンドウを完全に破棄(終了)したい場合は、de