Методы строк
В таблице ниже приведены некоторые наиболее употребительные методы объектов-строк и unicode-объектов.
| center(w) | Центрирует строку в поле длины w |
| count(sub) | Число вхождений строки sub в строке |
| encode([enc[, errors]]) | Возвращает строку в кодировке enc. Параметр errors может принимать значения "strict" (по умолчанию), "ignore", "replace" или "xmlcharrefreplace" |
| endswith(suffix) | Оканчивается ли строка на suffix |
| expandtabs([tabsize]) | Заменяет символы табуляции на пробелы. По умолчанию tabsize=8 |
| find(sub [,start [,end]]) | Возвращает наименьший индекс, с которого начинается вхождение подстроки sub в строку. Параметры start и end ограничивают поиск окном start:end, но возвращаемый индекс соответствует исходной строке. Если подстрока не найдена, возвращается -1 |
| index(sub[, start[, end]]) | Аналогично find(), но возбуждает исключение ValueError в случае неудачи |
| alnum() | Возвращает True, если строка содержит только буквы и цифры и имеет ненулевую длину. Иначе -- False |
| isalpha() | Возвращает True, если строка содержит только буквы и длина ненулевая |
| isdecimal() | Возвращает True, если строка содержит только десятичные знаки (только для строк Unicode) и длина ненулевая |
| isdigit() | Возвращает True, если содержит только цифры и длина ненулевая |
| islower() | Возвращает True, если все буквы строчные (и их более одной), иначе -- False |
| isnumeric() | Возвращает True, если в строке только числовые знаки (только для Unicode) |
| isspace() | Возвращает True, если строка состоит только из пробельных символов. Внимание! Для пустой строки возвращается False |
| join(seq) | Соединение строк из последовательности seq через разделитель, заданный строкой |
| lower() | Приводит строку к нижнему регистру букв |
| lstrip() | Удаляет пробельные символы слева |
| replace(old, new[, n]) | Возвращает копию строки, в которой подстроки old заменены new. Если задан параметр n, то заменяются только первые n вхождений |
| rstrip() | Удаляет пробельные символы справа |
| split([sep[, n]]) | Возвращает список подстрок, получающихся разбиением строки a разделителем sep. Параметр n определяет максимальное количество разбиений (слева) |
| startswith(prefix) | Начинается ли строка с подстроки prefix |
| strip() | Удаляет пробельные символы в начале и в конце строки |
| translate(table) | Производит преобразование с помощью таблицы перекодировки table, содержащей словарь для перевода кодов в коды (или в None, чтобы удалить символ). Для Unicode-строк |
| translate(table[, dc]) | То же, но для обычных строк. Вместо словаря - строка перекодировки на 256 символов, которую можно сформировать с помощью функции string.maketrans(). Необязательный параметр dc задает строку с символами, которые необходимо удалить |
| upper() | Переводит буквы строки в верхний регистр |
В следующем примере применяются методы split() и join() для разбиения строки в список (по разделителям) и обратное объединение списка строк в строку
>>> s = "This is an example." >>> lst = s.split(" ") >>> print lst ['This', 'is', 'an', 'example.'] >>> s2 = "\n".join(lst) >>> print s2 This is an example.
Для проверки того, оканчивается ли строка на определенное сочетание букв, можно применить метод endswith():
>>> filenames = ["file.txt", "image.jpg", "str.txt"] >>> for fn in filenames: ... if fn.lower().endswith(".txt"): ... print fn ... file.txt str.txt
Поиск в строке можно осуществить с помощью метода find(). Следующая программа выводит все функции, определенные в модуле оператором def:
import string text = open(string.__file__[:-1]).read() start = 0 while 1: found = text.find("def ", start) if found == -1: break print text[found:found + 60].split("(")[0] start = found + 1
Важным для преобразования текстовой информации является метод replace(), который рассматривается ниже:
>>> a = "Это текст , в котором встречаются запятые , поставленные не так." >>> b = a.replace(" ,", ",") >>> print b Это текст, в котором встречаются запятые, поставленные не так.