web-dev-qa-db-ja.com

Pythonでファイルのフォルダ名を取得します

Pythonでは、使用しているファイルが含まれているフォルダーの名前を取得するためにどのコマンドを使用する必要がありますか?

_"C:\folder1\folder2\filename.xml"_

ここで_"folder2"_が取得したいものです。

私が思いついた唯一のことは、_os.path.split_を2回使用することです。

folderName = os.path.split(os.path.split("C:\folder1\folder2\filename.xml")[0])[1]

それを行うより良い方法はありますか?

67
Vasily

フルパスを文字列として取得し、オペレーティングシステムの区切り文字を使用してリストに分割できます。次に、負のインデックスを使用してリストの最後から要素にアクセスすることにより、プログラム名、フォルダー名などを取得します。

このような:

import os
strPath = os.path.realpath(__file__)
print( f"Full Path    :{strPath}" )
nmFolders = strPath.split( os.path.sep )
print( "List of Folders:", nmFolders )
print( f"Program Name :{nmFolders[-1]}" )
print( f"Folder Name  :{nmFolders[-2]}" )
print( f"Folder Parent:{nmFolders[-3]}" )

上記の出力はこれでした:

Full Path    :C:\Users\terry\Documents\apps\environments\dev\app_02\app_02.py
List of Folders: ['C:', 'Users', 'terry', 'Documents', 'apps', 'environments', 'dev', 'app_02', 'app_02.py']
Program Name :app_02.py
Folder Name  :app_02
Folder Parent:dev
0
tjd sydney