Pythonでファイルパスから親ディレクトリ(一部)を抽出する方法
pathlibモジュールを使う方法(Python 3.4以降)
Python 3.4以降では、標準ライブラリのpathlibモジュールを使うことで、オブジェクト指向かつ直感的に親ディレクトリを取得できます。Pathオブジェクトのparent属性を参照するだけで、ひとつ上の階層のパスが得られます。
from pathlib import Path
print(Path('/home/username').parent)
実行結果:
/home
parentは連続して指定できるのも便利なポイントです。例えば Path('/home/username').parent.parent と書けば、さらに上の階層(この例では /)を取得できます。
os.pathを使う方法(古いバージョンでも動作)
Python 3.4より前のバージョンをサポートする必要がある場合や、従来のスタイルを維持したい場合は、os.pathモジュールを利用します。対象のパスに対して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(パス, '..'))という組み合わせが有効です。用途やサポート対象のPythonバージョンに応じて使い分けましょう。
-
Tkinterのfiledialogでファイルパス(初期ディレクトリ)を指定する方法
Tkinterには、アプリケーションのUIコンポーネントやユーザー操作用の要素を構築するための組み込み関数やクラスライブラリが数多く用意されています。その中でもfiledialogモジュールは、ファイルやディレクトリを選択するウィンドウを作成するためのクラスと関数を提供しています。ユーザーにシステム上のファイルやフォルダをブラウズしてもらいたい場面で非常に便利です。 さらに、ファイルを選択させるときの起点となるディレクトリの場所を指定することもできます。特定の場所から始まるファイルダイアログを表示するには、静的ファクトリ関数askopenfilename(initialdir=<loc
-
PythonのTkinterでファイル選択ダイアログを使い、選択したディレクトリの場所を表示・保存する方法
ダイアログボックスは、さまざまな種類のアプリケーションでおなじみのUI要素であり、ユーザーとの対話が重要となるアプリケーション開発において非常に役立ちます。ダイアログボックスを利用すれば、ユーザーにファイルの選択を求め、その後、ファイルの読み込みや書き込みといった操作を実行できます。Pythonでは、filedialogモジュールを使用することで、こうしたダイアログボックスを簡単に作成できます。 サンプルコード 以下の例では、ローカルディレクトリからファイルを選択するようユーザーに促し、選択されたファイルの場所(パス)をラベルウィジェットで表示するアプリケーションを作成します。 #Import