У чому різниця між os.path.basename()і os.path.dirname()?
Я вже шукав відповіді і читав деякі посилання, але не розумів. Хтось може дати просте пояснення?
У чому різниця між os.path.basename()і os.path.dirname()?
Я вже шукав відповіді і читав деякі посилання, але не розумів. Хтось може дати просте пояснення?
Відповіді:
Обидві функції використовують os.path.split(path)функцію, щоб розділити ім'я шляху pathна пару; (head, tail).
os.path.dirname(path)Функція повертає голова шляху.
Наприклад: імя_діректоріі з '/foo/bar/item'IS '/foo/bar'.
os.path.basename(path)Функція повертає хвіст шляху.
Напр .: Базова назва '/foo/bar/item'повернень'item'
Від: http://docs.python.org/2/library/os.path.html#os.path.basename
os.path.basename(os.path.dirname(path))
'foo.bar'і os.path.dirname (Імя_файла) повертає порожній рядок: ''.
Підсумувати те, що згадував Брено вище
Скажімо, у вас є змінна зі шляху до файлу
path = '/home/User/Desktop/myfile.py'
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)повертає порожній рядок.
itemнаitem/, що є каталогом, тоos.path.split('foo/bar/item/')повертається('foo/bar/item', '').