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.