Вот 5 простых способов получить имя файла из пути в Python.
Способ 1: используйте os.path.basename()
Самый простой способ получить имя файла по пути — использовать метод os.path.basename(). При работе с UNIX или MacOS в качестве разделителя пути используется косая черта /, а в Windows в качестве разделителя используется обратная косая черта \.
Синтаксис
|
1 |
os.path.basename(path) |
Параметры
Метод basename() принимает один path-like object, представляющий путь к файловой системе.
Пример
Чтобы использовать функцию basename(), импортируйте модуль os в верхней части файла.
|
1 2 3 4 5 |
import os The next step is to define the filepath. path = '/Users/krunal/Desktop/code/pyt/app.py' |
По пути к файлу вы можете видеть, что имя файла — app.py.
Чтобы извлечь это из пути к файлу, используйте функцию os.path.basename().
|
1 2 3 4 5 6 7 |
import os path = '/Users/krunal/Desktop/code/pyt/app.py' basename = os.path.basename(path) print(basename) |
Выход
|
1 |
app.py |
Из вывода видно, что мы получили именно то, что просили.
Когда метод os.path.basename() используется в системе POSIX для получения базового имени из пути в стиле Windows; будет возвращен полный путь.
Способ 2: использование метода os.path.split()
«os.path.split()» — это встроенный метод Python, который разбивает путь на пару головы и хвоста. Хвостовая часть будет нашим именем файла.
Синтаксис
|
1 |
os.path.split(path) |
Параметры
Метод os.path.split() принимает path-like object, представляющий путь к файловой системе.
Пример
Метод os.path.split() возвращает голову и хвост. Хвост — это имя файла, голова — путь к файлу, и нас интересует имя файла.
|
1 2 3 4 5 6 7 |
import os path = '/Users/krunal/Desktop/code/pyt/app.py' head, tail = os.path.split(path) print(tail) |
Выход
|
1 |
app.py |
Как видите, метод Split() возвращает значения головы и хвоста, и мы напечатали хвост, который является именем файла.
Способ 3: с помощью pathlib.Path().name()
Модуль pathlib позволяет создавать классы, представляющие пути файловой системы с семантикой, подходящей для разных операционных систем. Например, метод Path() возвращает полный путь к файлу и применяет к нему свойство name, которое возвращает имя файла.
Пример
|
1 2 3 4 5 6 7 |
import pathlib path = '/Users/krunal/Desktop/code/pyt/app.py' filename = pathlib.Path(path).name print(filename) |
Выход
|
1 |
app.py |
Способ 4: применение регулярных выражений
Вы можете использовать регулярное выражение, чтобы сопоставить имя файла с определенным шаблоном.
Синтаксис
|
1 |
Pattern - [\w]+?(?=\.) |
Пример
|
1 2 3 4 5 6 7 8 9 10 11 |
import re filePath = 'C:/Users/data.csv' pattern = '[\w-]+?(?=\.)' # searching the pattern a = re.search(pattern, filePath) # printing the match print(a.group()) |
Выход
|
1 |
data |
Способ 5: использование методов Split() и rsplit()
Вы можете использовать встроенную функцию Python Split(), чтобы разделить путь к файлу на список отдельных компонентов, а затем использовать метод rsplit(), чтобы разделить последний компонент.
Пример
|
1 2 3 4 5 6 7 8 9 10 |
def get_file_name(file_path): file_components = file_path.split('/') file_name_and_extension = file_components[-1].rsplit('.', 1) return file_name_and_extension[0] filePath = 'C:/Users/data.csv' result = get_file_name(filePath) print(result) |
Выход
|
1 |
data |
