Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
Для исключения неоднозначности документ вUnicodeможет быть в самом начале снабжен
Содержание книги
- Второе измерение,образующее вместе с первым плоскость,на которой и берется
- Индекс минимального значения в массиве по заданному
- Суммирование с промежуточными результатами
- Возвращает индексы ненулевых элементов одномерного массива
- Выбор частей массива 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:
- dom = xml.dom.minidom.parse("ex.xml")
- if node.nodeType == node.ELEMENT_NODE: print node.nodeName, node.namespaceURI
- Для корректной работы сценарии помещаются в предназначенный для этого каталог наweb-сервере (обычно он называется cgi-bin) или, если это разрешено конфигурацией
- print """Content-Type: text/plain
- print """Content-Type: image/jpeg
- В приведенных примерах имена появлялись в строке запроса только один раз. Некоторые формы порождают несколько значений для одного имени. Получить все значения можно с
- В начале отлаживаемого сценария нужно поставить
- lt;Directory "/var/www/html/mywebdir> AddHandler python-program .py PythonHandler mprocess
- password = req.get_basic_auth_pw() user = req.connection.user
Для исключения неоднозначности документ вUnicodeможет быть в самом начале снабжен
BOM (byte-order mark - метка порядка байтов) - Unicode-символом с кодом 0xfeff. Для данной платформы строка байтов дляBOMбудет такой:
>>> codecs.BOM_LE '\xff\xfe'
Для преобразования строки вUnicodeнеобходимо знать,в какой кодировке закодирован текст.Предположим,что это cp1251.Тогда преобразовать текст вUnicodeможно следующим способом:
>>> s = "Строка в cp1251"
>>> s.decode("cp1251") u'\u0421\u0442\u0440\u043e\u043a\u0430 \u0432 cp1251'
То же самое с помощью встроенной функции unicode():
>>> unicode(s, 'cp1251') u'\u0421\u0442\u0440\u043e\u043a\u0430 \u0432 cp1251'
Одной из полезных функций этого модуля является функция codecs.open(),позволяющая открыть файл в другой кодировке:
vcodecs.open(filename, mode[, enc[, errors[, buffer]]])
Здесь:
filename
Имя файла.
mode
Режим открытия файла
enc
Кодировка.
errors
Режим реагирования на ошибки кодировки('strict' -возбуждать исключение, 'replace' -заменять отсутствующие символы, 'ignore' -игнорировать ошибки).
buffer
Режим буферизации(0 -без буферизации, 1 -построчно, n -байт буфера).
Заключение
В этой лекции были рассмотрены основные типы для манипулирования текстом:строки иUnicode-строки. Достаточно подробно описаны регулярные выражения - один из наиболее эффективных механизмов для анализа текста.В конце приведены некоторые функции для работы сUnicode.
Ссылки
NLTK
http://nltk.sourceforge.net
Лекция#7:Работа с данными в различных форматах
Формат CSV
Файл в форматеCSV (comma-separated values -значения,разделенные запятыми) -
универсальное средство для переноса табличной информации между приложениями(электронными таблицами, СУБД, адресными книгами и т.п.). К сожалению, формат файла не имеет строго определенного стандарта,поэтому между файлами,порождаемыми различными приложениями,существуют некоторые тонкие различия.Внутри файл выглядит примерно так(файл pr.csv):
|