Python でパスからファイル名を取得する方法
-
パスからファイル名を取得するために
ntpath
ライブラリを使用する -
パスからファイル名を取得するには
ntpath.basename()
を使用する -
Python は
os.path.basename()
を使用してパスからファイル名を取得する -
Python パスからファイル名を取得するには
os.path.split()
を使用する
このチュートリアルでは、Python でパスからファイル名を取得する方法を紹介します。また、特定のオペレーティングシステムに関連した概念をさらに説明するためのコード例もいくつか挙げています。
パスからファイル名を取得するために ntpath
ライブラリを使用する
パスの定義方法は様々です。Windows のファイルのパスはバックスラッシュかフォワードスラッシュのどちらかをパスの区切り文字として使うことができます。したがって、ntpath
モジュールはすべてのプラットフォーム上のすべてのパスに対して動作します。
ntpath
ライブラリは basename
という関数をサポートしています。この関数は path
を渡し、実行後に ntpath.basename(path)
が path
からファイル名を返します。このメソッドを利用する基本的な例を以下に示します。
import ntpath
print(ntpath.basename("usr/temp/new/sample"))
出力:
sample
パスからファイル名を取得するには ntpath.basename()
を使用する
このライブラリは Linux でも動作します。ただし、Linux では、ファイル名にバックスラッシュが含まれている場合があります。そのため、Linux では、r'usr/xyz\python'
は常に usr
フォルダ内のファイル xyz\python
を参照することになります。
import ntpath
print(ntpath.basename("r'usr/xyz\python'"))
出力:
xyz\python
Windows の usr
フォルダの xyz
サブフォルダにある python
というファイル名を指します。パスの中でバックスラッシュとフォワードスラッシュの両方が使用されている場合、どちらのプラットフォームを使用しているかを知る必要があります。そうしないと、パスを正しく解釈できないかもしれません。
パスからファイル名を取得する方法として、os.path.basename()
を使用する方法もあります。
Python は os.path.basename()
を使用してパスからファイル名を取得する
パスからファイル名を取得するには、os.path
ライブラリが提供する関数を使用することもできます。この関数は basename
であり、ファイル名を取得するのに用います。
basename
は path
をパラメータとして受け取り、filename
を返します。
以下にコード例を示します。
import os
print(os.path.basename("usr/temp/eng"))
出力:
eng
システムが POSIX で、ダブルフォワードスラッシュを含むウィンドウズスタイルのパスが os.path.basename()
に渡された場合、出力は与えられた完全なパスになります。
# in Linux
import os
print(os.path.basename("E:\\aws\\temp.jpg"))
出力:
E:\\aws\\temp.jpg
Python パスからファイル名を取得するには os.path.split()
を使用する
先頭と末尾が個別に必要な場合は、os.path.split()
メソッドを用いることができます。このメソッドは path
を引数にとり、パスの head
と tail
を返します。
以下にコード例を示します。
import os
head, tail = os.path.split("/Users/xyz/Downloads")
print(head)
print(tail)
出力:
/Users/xyz
Downloads
Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.
LinkedIn