Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
import StringIO my_string = "1234567890" f1 = StringIO.StringIO()
Содержание книги
- from Multimethod import Method, Generic, AmbiguousMethodError
- Должен возвращать кортеж из аргументов,который будет
- Лекция#5:Численные алгоритмы.Матричные
- Для создания массива можно использовать функцию array() с указанием содержимого массива(в виде вложенных списков)и типа. Функция array() делает копию,если ее
- Объекты-массивы Numeric используют расширенный синтаксис выделения среза.Следующие примеры иллюстрируют различные варианты записи срезов.Функция
- каждый третий элемент строки 1
- Наименьшее(наибольшее)целое,большее(меньшее)или
- gt;>> add.accumulate([1, 2, 3, 4])
- add.reduce(a, axis). cumsum(a, axis). add.accumulate(a, axis). product(a, axis). multiply.reduce(a, axis). cumproduct(a, axis). multiply.accumulate(a, axis). alltrue(a, axis). logical_and.reduce(a, axis). sometrue(a, axis). logical_or.reduce(a, axis). Фун
- Второе измерение,образующее вместе с первым плоскость,на которой и берется
- Индекс минимального значения в массиве по заданному
- Суммирование с промежуточными результатами
- Возвращает индексы ненулевых элементов одномерного массива
- Выбор частей массива a на основе индексов indices по измерению axis
- gt;>> print "Проверка:", Numeric.dot(a, x) - b
- gt;>> print RandomArray.normal(0, 1, 30)
- negative_binomial(trials, p, shape=[])
- iso_ir_6': 'ascii', 'maccyrillic': 'mac_cyrillic', 'iso_celtic': 'iso8859_14', 'ebcdic_cp_wt': 'cp037', 'ibm500': 'cp500', ...
- sys:1: DeprecationWarning: Non-ASCII character '\xf0' in file example.py on line 2, but no encoding declared;
- В строке формата кроме текста могут употребляться спецификации,регламентирующие формат выводимого значения.Спецификация имеет синтаксис
- Восьмеричное беззнаковое целое
- File "/home/rnd/tmp/Python-2.4b2/Lib/string.py", line 172, in substitute return self.pattern.sub(convert, self.template)
- Возвращает наименьший индекс,с которого начинается вхождение подстроки sub в строку.Параметры start и end
- Удаляет пробельные символы слева
- text = open(string.__file__[:-1]).read() start = 0
- import StringIO my_string = "1234567890" f1 = StringIO.StringIO()
- Синтаксис регулярного выражения
- Фрагмент справа или фрагмент слева
- Взгляд вперед:строка должна соответствовать заданному регулярному
- Наоборот,не соответствует промежутку между символами на
- r"aa|bb|cc|AA|BB|CC"
- Строка из двух одинаковых букв,но шаблон задан с использованием групп
- quot;""Отладка рег. выражения. Перед отладкой лучше убрать лишние скобки """
- decoder = re.compile(r'^([-+]?)0*(\d*)((?:\.\d*)?)((?:[eE][-+]?\d+)?)$')
- Для исключения неоднозначности документ вUnicodeможет быть в самом начале снабжен
- name,number,text a,1,something here b,2,"one, two, three" c,3,"no commas here"
- input_file.close() output_file.close()
- fieldnames=['name', 'number', 'text']) output_file = open("pr1.csv", "wb")
- Разбор сообщения. Класс Message
- quot;felton olive" <zinakinch@thecanadianteacher.com>
- parts.append(submsg.get_content_type()) ct_fields.append(submsg.get('Content-Type', '')) filenames.append(submsg.get_filename())
- from email.MIMEMultipart import MIMEMultipart from email.MIMEText import MIMEText
- class MIMEBase(_maintype, _subtype, **_params)
- for text, enc in email.Header.decode_header(subj): print enc, text
- lt;?xml version="1.0" encoding="iso-8859-1"?> <expression>
- lt;operation type="+"> <operand>2</operand> <operand>
- from xml.dom import minidom dom = minidom.Document()
- разработчики стараются придерживаться единогоAPI,который продиктован стандартом
- previousSibling(предыдущий брат).parentNode
- getAttribute(attname). getAttributeNode(attrname). removeAttribute(attname). removeAttributeNode(oldAttr). setAttribute(attname, value). setAttributeNode(newAttr). Пространства имен. lt;?xml version="1.0" encoding="UTF-8"?> <rdf:
import StringIO my_string = "1234567890" f1 = StringIO.StringIO()
f2 = StringIO.StringIO(my_string)
Далее с файлами f1 и f2 можно работать как с обычными файловыми объектами.
Для получения содержимого такого файла в виде строки применяется метод getvalue():
f1.getvalue()
Противоположный вариант(представление файла на диске в виде строки)можно реализовать на платформахUnixиWindowsс использованием модуля mmap.Здесь этот модуль рассматриваться не будет.
Модуль difflib
Для приблизительного сравнения двух строк в стандартной библиотеке предусмотрен модуль difflib.
Функция difflib.get_close_matches() позволяет выделитьnблизких строк к заданной строке:
get_close_matches(word, possibilities, n=3, cutoff=0.6)
где
word
Строка,к которой ищутся близкие строки.
possibilities
Список возможных вариантов.
n
Требуемое количество ближайших строк.
cutoff
Коэффициент(из диапазона[0, 1])необходимого уровня совпадения строк.Строки,которые при сравнении с word дают меньшее значение,игнорируются.
Следующий пример показывает функцию difflib.get_close_matches() в действии:
>>> import unicodedata
>>> names = [unicodedata.name(unicode(chr(i))) for i in range(40, 127)]
>>> print difflib.get_close_matches("LEFT BRACKET", names)
['LEFT CURLY BRACKET', 'LEFT SQUARE BRACKET']
В списке names-названияUnicode-символов сASCII-кодами от40до127.
Регулярные выражения
Рассмотренных стандартных возможностей для работы с текстом достаточно далеко не всегда.Например,в методах find() и replace() задается всего одна строка.В реальных задачах такая однозначность встречается довольно редко,чаще требуется найти или заменить строки,отвечающие некоторому шаблону.
Регулярные выражения(regular expressions)описывают множество строк,используя специальный язык,который сейчас и будет рассмотрен. (Строка,в которой задано регулярное выражение,будет называться шаблоном.)
Для работы с регулярными выражениями вPythonиспользуется модуль re.В следующем примере регулярное выражение помогает выделить из текста все числа:
>>> import re
>>> pattern = r"[0-9]+"
>>> number_re = re.compile(pattern)
>>> number_re.findall("122 234 65435") ['122', '234', '65435']
В этом примере шаблон pattern описывает множество строк,которые состоят из одного или более символов из набора "0", "1", ...,"9".Функция re.compile() компилирует шаблон в специальныйRegex-объект,который имеет несколько методов,в том числе метод findall() для получения списка всех непересекающихся вхождений строк,
удовлетворяющих шаблону,в заданную строку.
То же самое можно было сделать и так:
>>> import re
>>> re.findall(r"[0-9]+", "122 234 65435") ['122', '234', '65435']
Предварительная компиляция шаблона предпочтительнее при его частом использовании,особенно внутри цикла.

Примечание:
Следует заметить,что для задания шаблона использована необработанная строка.В данном примере она не требовалась,но в общем случае лучше записывать строковые литералы именно так,чтобы исключить влияние специальных последовательностей,записываемых через обратную косую черту.
|