@sazhyk

Как получить имя директории, в которой находится файл?

Я тут уже задавал вопрос по работе с файлами в python. Так вот. Мне надо получить имя директории, в которой лежит файл. Не путь вида /home/path/to/file/filename.txt, а именно имя директории /home/path/to/file/filename.txt.
Как его можно вернуть из этой функции?
def my_list(path):
    filePaths = []
    for dirname, dirnames, filenames in os.walk(path):
        filenames = filter(lambda x: x.endswith('.html'), filenames)
        for filename in filenames:
            file = os.path.join(dirname, filename)
            filePaths.append(file)
    return filePaths

Предполагаю, что оптимальным было бы её вынуть из dirname и вернуть в функции в виде словаря. Вроде того. Мне как раз нужны именно пары вида
{'file': '/home/path/to/file/filename.txt', ... }
def my_list(path):
    myDict = {}
    for dirname, dirnames, filenames in os.walk(path):
        filenames = filter(lambda x: x.endswith('.html'), filenames)
        for filename in filenames:
            parentdir = []
            filelist = []
            f = os.path.join(dirname, filename)
            filelist.append(f)
            parentdir = ...
            parentdir.append()
            filelist.append(f)
            myDict = dict(zip(parentdir, filelist))
    return myDict

Вот только как это сделать, не очень понимаю.
PS очень вероятно, что тут дикий огород и быдлокод. Но, уж как умею. За любой совет спасибо.
  • Вопрос задан
  • 1362 просмотра
Решения вопроса 1
os.path.basename(os.path.dirname(s))

dirname отсекает имя файла, из полученного пути basename выделяет имя искомой директории
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
delvin-fil
@delvin-fil
Crazy Linux-admin
os.path
Ответ написан
Комментировать
@reef213
dirLst=os.path.dirname(path).split("/")
dirname = dirLst[-1]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы