str.rpartition()

Метод rpartition() ищет последнее вхождение разделителя sep в строке и возвращает кортеж из трёх элементов: часть до разделителя, сам разделитель и часть после него. Если разделитель не найден, возвращается кортеж из двух пустых строк и исходной строки.

Сигнатура

str.rpartition(sep)

Параметры

  • sep — строка-разделитель. Не может быть пустой (иначе ValueError).

Возвращаемое значение

Кортеж из трёх строк: (before, sep, after) либо ("", "", original), если разделитель не найден. Обратите внимание: при отсутствии разделителя исходная строка попадает в третий элемент (а не в первый, как у str.partition()).

Примеры использования

Пример 1. Разделение по последнему дефису.

print("arduino-uno-r3".rpartition("-"))
('arduino-uno', '-', 'r3')

Пример 2. Разделитель не найден.

print("Arduino".rpartition(":"))
('', '', 'Arduino')

Пример 3. Получение имени файла и каталога.

path = "/home/alashed/projects/main.py"
directory, _, filename = path.rpartition("/")
print("Каталог:", directory)
print("Файл:", filename)
Каталог: /home/alashed/projects
Файл: main.py

Пример 4. Получение расширения.

name, _, ext = "firmware.v2.hex".rpartition(".")
print(name, "→", ext)
firmware.v2 → hex

Пример 5. Сравнение с partition().

text = "a=b=c"
print(text.partition("="))
print(text.rpartition("="))
('a', '=', 'b=c')
('a=b', '=', 'c')

См. также

  • str.partition() — разделение по первому вхождению

  • ../rsplit/index — разделение с конца на список

  • str.rindex() — поиск последнего вхождения

Примечание

Лицензия и источники

Техническое описание метода адаптировано из официальной документации Python (https://docs.python.org), доступной под Python Software Foundation License Version 2. Перевод на русский, примеры использования и пояснения — © AlashEd Wiki.