str.partition()

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

Сигнатура

str.partition(sep)

Параметры

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

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

Кортеж из трёх строк: (before, sep, after) либо (original, "", ""), если разделитель не найден.

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

Пример 1. Простое разделение.

line = "PIN=13"
print(line.partition("="))
('PIN', '=', '13')

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

print("Arduino UNO".partition(":"))
('Arduino UNO', '', '')

Пример 3. Только первое вхождение.

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

Пример 4. Парсинг строки лога.

log = "ERROR: Sensor not responding on D7"
level, _, message = log.partition(": ")
print("Уровень:", level)
print("Сообщение:", message)
Уровень: ERROR
Сообщение: Sensor not responding on D7

Пример 5. Безопасный разбор ключ-значение.

def parse(line):
    key, sep, value = line.partition("=")
    if not sep:
        return None
    return key.strip(), value.strip()

print(parse("BAUD = 9600"))
print(parse("no separator"))
('BAUD', '9600')
None

См. также

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

  • str.split() — разделение на список

  • str.find() — поиск позиции подстроки

Примечание

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

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