Python でパスからディレクトリを取得
- さまざまな OS でのファイルパスの違い
-
os.path.basename
を使用して、Python のファイルパスからファイル名を検索する -
os.path.splittext
を使用して、Python のファイルパスからファイル名を検索する -
os.path.dirname
を使用して、Python のファイルパスからディレクトリ名を検索する -
Python で
pathlib
モジュールを使用してディレクトリ名を抽出する -
os.path.abspath
を使用して、Python のファイルパスからディレクトリ名を検索する
ファイルパスは、システムまたはディレクトリ内のファイルの場所を表す一意の文字列です。場合によっては、ファイルパスから任意の部分またはチャンクを取得または抽出する必要があります。
Python のファイルパスからパーツを抽出する方法はいくつかあります。
さまざまな OS でのファイルパスの違い
Linux ディレクトリ構造(MAC を含む)ではスラッシュ/
を使用しますが、Windows では、区切り文字としてバックスラッシュ\
を使用します。
システムで使用されている区切り文字を確認するには、os.sep
または os.path.sep
を使用します。システムで使用されているパス区切り文字が返されます。
os.path.basename
を使用して、Python のファイルパスからファイル名を検索する
Python でファイルパスの一部を抽出する最初の最も簡単な方法は、os.path.basename()
関数を使用することです。
この関数は、ファイルパスからファイル名とその拡張子を返します。さらに、すべての Python バージョンで機能します。
import os
fpath = "c:\Project\input.txt"
os.path.basename(fpath)
出力:
os.path.splittext
を使用して、Python のファイルパスからファイル名を検索する
拡張子ではなくファイルパスからファイル名だけを抽出する場合は、os.path.splittext()
関数を使用します。この関数はファイル名のみを返します。
さらに、この関数を使用してインデックス 0
を追加し、目的の出力を取得します。splittext()
関数は、ファイルパスを配列に分割します。したがって、インデックス 0
はファイル名を表し、インデックス 1
はその拡張子を表します。
import os
fpath = "c:\Project\input.txt"
fname = os.path.splitext(fpath)[0]
出力:
os.path.dirname
を使用して、Python のファイルパスからディレクトリ名を検索する
関数 os.path.dirname()
は、パスからディレクトリ名を抽出するために使用されます。この関数は、Python コンソールに文字列としてディレクトリ名を返します。
import os
fpath = "c:\Project\input.txt"
dirname = os.path.dirname(filepath)
print(dirname)
出力:
この関数は、親ディレクトリへの完全なパスを返します。
Python で pathlib
モジュールを使用してディレクトリ名を抽出する
ファイルパスからディレクトリを取得する別の方法は、pathlib
モジュールを使用することです。これは、Python バージョン 3.4 以降で特に利用できます。
この関数は引数とファイルパスを受け取り、フェッチされたアイテムに応じてさまざまな出力を返すことができます。まず、ファイルとそのパスをインポートしましょう。
from pathlib import Path
p = Path("C:\\Program Files\\Internet Explorer\\iexplore.exe")
親ディレクトリを確認するには、次のコードを実行します。
str(p.parent)
出力:
ディレクトリとファイル名をパーツとしてフェッチするには、パスモジュールのパーツ関数を使用します。例えば:
P.parts
あなたはこのようなものを手に入れるでしょう。
os.path.abspath
を使用して、Python のファイルパスからディレクトリ名を検索する
OS モジュールは、ファイルパスからディレクトリを抽出する機能も提供します。
この関数は、バックスラッシュとドット文字の 2つの異なる引数を取ります。バックスラッシュ文字はルートディレクトリを返し、ドットは現在のディレクトリを返します。
import os
directory = os.path.abspath("\\")
print(directory)
出力:
絶対パスを取得するためのコードは次のとおりです。
directory = os.path.abspath(".")
print(directory)
出力:
'C:\Users\User\Desktop'
このチュートリアルでは、Python でファイルパスを分割するためのいくつかの関数とモジュールについて説明しました。また、OS
および Path
モジュールを使用して、Python のファイルパスから名前またはディレクトリを抽出する方法も学習しました。
関連記事 - Python Directory
- Python のホーム ディレクトリの取得
- Python のディレクトリとサブディレクトリにあるすべてのファイルを一覧表示する
- Python のフォルダ内の各ファイルに対してコマンドを実行する
- Python でサブディレクトリを一覧表示する
- Python でディレクトリ内のすべてのファイルを開く