Możesz uzyskać pełną ścieżkę jako ciąg, a następnie podzielić ją na listę przy użyciu znaku separatora systemu operacyjnego. Następnie uzyskujesz nazwę programu, nazwę folderu itp., Uzyskując dostęp do elementów z końca listy za pomocą indeksów ujemnych.
Lubię to:
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]}" )
Wynik powyższego był następujący:
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