Python предоставляет различные методы взаимодействия с операционной системой для управления именами файлов и именами каталогов через модуль os. В этой статье обсуждается один из встроенных методов Python, используемых для получения базового имени файла по заданному пути: метод os.path.basename()
, который позволяет нам извлечь имя файла из указанного пути.
Мы должны использовать os.path.basename() в коде, импортируя модуль os. Этот метод os.path.basename() дополнительно использует функцию split() для разделения строки пути на пару, которая будет возвращать начало и конец. Головная часть предназначена для имени каталога, а хвостовая часть возвращается методом os.path.basename(). Давайте подробнее об этом методе.
Чтобы получить имя файла, которое является базовым именем из пути, мы должны использовать этот синтаксис.
Os.path.basename(path)
Os.path — это подрежим модуля os для манипулирования именами путей. Итак, сначала нам нужно импортировать модуль os для этого метода базового имени.
Этот метод os.path.name() принимает только указанную строку пути, представляющую путь к файловой системе.
os.path.basename() вернет значение в строке заданного пути, которое является базовым именем файла. Теперь у нас будет простой пример реализации того, как работает этот метод os.path.basename().
В Windows и Unix у нас есть разные форматы для извлечения базового имени файла с указанным путем, поэтому в этом примере мы собираемся извлечь базовое имя с синтаксисом окна и синтаксисом Unix. Сначала у нас есть пример окна.
В окне используется разделитель с обратной косой чертой ‘\’; мы можем проверить или подтвердить этот разделитель с помощью метода os.path.sep(). Переменная «file_dir» имеет путь «Users\abc\Downloads\My Window», который является именем каталога файла, а «file_name» имеет путь, заданный «Users\abc\Downloads\My Window\index.html». Обе переменные возвращают базовое имя файла с синтаксисом Window. Мы также будем печатать разделитель окон с помощью метода os.path.sep().
import os.path file_dir = os.path.basename("Users\abc\Downloads\My Window") print(file_dir) file_name = os.path.basename("Users\abc\Downloads\My Window\index.html") print(file_name) print(os.path.sep)
Экран консоли покажет выходные данные, печатающие имя каталога файла, базовое имя файла и знак разделителя.
Теперь у нас есть разделитель Unix, используемый в этом примере ниже. Unix использует косую черту ‘/’ в качестве разделителя пути. Мы можем получить этот разделитель, напечатав метод os.path.sep().
import os.path file_dir = os.path.basename("/Downloads/ My Unix") print(file_dir) file_name = os.path.basename("/Downloads/ My Unix /unix.txt") print(file_name)
Давайте рассмотрим пример извлечения имени файла с помощью метода os.path.basename(). Мы импортировали os.path для доступа к методу os.path.basename() в этом конкретном примере. У нас есть «базовое имя», которое вернет базовое имя файла, которое мы назначили в os.path.basename. С оператором print() у нас будет базовое имя.
import os.path basename = os.path.basename("/home/example/exampleFile.txt") print(basename)
Здесь у нас есть «/home/example/» в качестве имени пути и «exampleFile.txt» в качестве базового имени.
В этом примере мы найдем базовое имя каталога или имени папки. Имя папки или каталога также имеет базовое имя в полном пути. В этом примере у нас есть «Документы» в качестве базового имени из пути «/home/MyDocuments/Documents», который передается в os.path.basename(). Переменная ‘basename’ вернет вывод, который вызывается в функции print().
import os.path basename = os.path.basename("/home/MyDocuments/Documents") print(basename)
Мы получим «Документы» в качестве базового имени из приведенного выше кода.
Чтобы получить базовое имя из URL-адреса, нам нужно импортировать библиотеку из модуля стандартного пакета urllib, который называется urlparse. Это поможет нам разделить строки URL на компоненты или снова объединить строку URL в компоненты.
В этом примере будет получено базовое имя URL-адреса для формирования переменной «URL», которая имеет строковый URL-адрес «https://docs.python.org/3/download.html». URL-адрес передается в метод urlparse() в качестве аргумента, который разделит URL-адрес на части. Этот анализ URL-адреса хранится в новой переменной «x», которая будет отображать строку разделенного пути URL-адреса. На этот раз мы используем os.path.basename() через оператор печати.
import os from urllib.parse import urlparse url = "https://docs.python.org/3/download.html" x = urlparse(url) print(x.path) print(os.path.basename(x.path))
Отображение разделенной строки URL-адреса и базового имени из URL-адреса.
В этом примере используется метод os.path.split() для возврата пары «голова» и «хвост» по отдельности. Для этого мы должны передать указанный путь в качестве аргумента в метод os.path.split(). Мы получим «голову» и «хвост» отдельно через оператор печати.
import os path = "/Users/Desktop/Article/python/code.py" head_tail = os.path.split(path) print(head_tail)
Вы можете увидеть вывод этого кода, поскольку он показывает головную часть и хвостовую часть по отдельности.
Мы извлекли базовое имя и расширение, определенные в этом примере. Мы будем извлекать имя файла без расширения с помощью другого метода os.path.splitext(). Этот метод даст только базовое имя, определенное в os.path.basename().
Мы назначили путь как «home/example/example3.txt» в переменной «basename». Используйте индекс как «0», чтобы получить базовое имя без расширения.
import os.path path_name="home/example/example3.txt" basename = os.path.splitext(os.path.basename(path_name))[0] print(basename)
У нас есть вывод basename как «example3» без расширения на экране консоли.
В этой статье мы рассмотрели все возможные способы получения базового имени по указанному пути. Кроме того, мы продемонстрировали получение базового имени в Windows и Unix с разными разделителями. Теперь, надеюсь, эта функция даст вам четкое понимание.