В чем разница между os.path.basename()
и os.path.dirname()
?
Я уже искал ответы и читал некоторые ссылки, но не понял. Кто-нибудь может дать простое объяснение?
Обе функции используют os.path.split(path)
функцию, чтобы разделить имя пути path
на пару; (head, tail)
,
os.path.dirname(path)
Функция возвращает голова пути.
Например: Dirname '/foo/bar/item'
является '/foo/bar'
.
os.path.basename(path)
Функция возвращает хвост пути.
Например: базовое имя '/foo/bar/item'
возвращается'item'
От: http://docs.python.org/2/library/os.path.html#os.path.basename
item
наitem/
, который является каталогом, тоos.path.split('foo/bar/item/')
возвращается('foo/bar/item', '')
.os.path.basename(os.path.dirname(path))
'foo.bar'
и os.path.dirname (имя_файл) возвращает пустую строку:''
.Подводя итог, что было упомянуто Брено выше
Скажем, у вас есть переменная с путем к файлу
os.path.basename(path)
возвращает строку'myfile.py'
и
os.path.dirname(path)
возвращает строку'/home/User/Desktop'
(без завершающей косой черты '/')Эти функции используются, когда вам нужно получить имя файла / имя каталога с указанием полного пути.
В случае, если путь к файлу - это просто имя файла (например, вместо того,
path = '/home/User/Desktop/myfile.py'
чтобы просто указатьmyfile.py
),os.path.dirname(path)
возвращает пустую строку.источник