Модули и функции · встроенный MicroPython FEMM 5
csv
Чтение и запись текстовых таблиц результатов FEMM.
Условия работы
- Все файлы для csv открывайте в текстовом режиме. Для небольших таблиц подходит io.StringIO.
- Параметры формата: delimiter, quotechar, escapechar, doublequote, skipinitialspace, lineterminator, quoting, strict.
- QUOTE_MINIMAL=0, QUOTE_ALL=1, QUOTE_NONNUMERIC=2, QUOTE_NONE=3, QUOTE_STRINGS=4, QUOTE_NOTNULL=5. Ошибки формата имеют тип csv.Error.
- DictReader возвращает OrderedDict и сохраняет порядок столбцов; Sniffer применяет эвристику, результат надо проверять на данных.
csv.readercsv.writercsv.writer.writerowcsv.writer.writerowscsv.DictReadercsv.DictWritercsv.DictWriter.writeheadercsv.DictWriter.writerowcsv.DictWriter.writerowscsv.field_size_limitcsv.get_dialectcsv.list_dialectscsv.register_dialectcsv.unregister_dialectcsv.Sniffercsv.Sniffer.sniffcsv.Sniffer.has_headercsv.excelcsv.excel_tabcsv.unix_dialectcsv.readerРазбирает кавычки, экранирование и многострочные поля. QUOTE_NONNUMERIC преобразует незаключённые поля в float.
csv.reader
reader(csvfile, dialect=None, **fmtparams)Разбирает кавычки, экранирование и многострочные поля. QUOTE_NONNUMERIC преобразует незаключённые поля в float.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
csvfile | Итерируемый источник строк. |
dialect | Имя или объект диалекта; None использует excel. |
fmtparams | Переопределения формата, например delimiter=";". |
Возвращаемое значение
Итератор списков полей; обычно строки.
Пример
"Пример csv.reader.\nСреда: встроенный MicroPython FEMM 5.\nРазбирает кавычки, экранирование и многострочные поля. QUOTE_NONNUMERIC преобразует незаключённые поля в float.\nРезультат: Итератор списков полей; обычно строки."
import csv
rows=list(csv.reader(['I_A;B_T\n','10;0.2\n'],delimiter=';'))
assert rows[1] == ['10','0.2']
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.writerСоздаёт запись таблицы с корректным экранированием.
csv.writer
writer(csvfile, dialect=None, **fmtparams)Создаёт запись таблицы с корректным экранированием.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
csvfile | Текстовый объект с write(str). |
dialect | Имя или объект диалекта. |
fmtparams | Параметры разделителей и кавычек. |
Возвращаемое значение
Объект writer.
Пример
"Пример csv.writer.\nСреда: встроенный MicroPython FEMM 5.\nСоздаёт запись таблицы с корректным экранированием.\nРезультат: Объект writer."
import csv
import io
s=io.StringIO()
w=csv.writer(s,delimiter=';',lineterminator='\n')
w.writerow(['I_A','B_T'])
assert s.getvalue() == 'I_A;B_T\n'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.writer.writerowЗаписывает одну строку.
csv.writer.writerow
writer.writerow(row)Записывает одну строку.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
row | Итерируемые значения полей; None обычно записывается пустым полем. |
Возвращаемое значение
Результат write текста строки, обычно число символов.
Пример
"Пример csv.writer.writerow.\nСреда: встроенный MicroPython FEMM 5.\nЗаписывает одну строку.\nРезультат: Результат write текста строки, обычно число символов."
import csv
import io
s=io.StringIO()
w=csv.writer(s,delimiter=';',lineterminator='\n')
w.writerow([10,0.2])
assert s.getvalue() == '10;0.2\n'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.writer.writerowsЗаписывает несколько строк.
csv.writer.writerows
writer.writerows(rows)Записывает несколько строк.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
rows | Итерируемая последовательность строк значений. |
Возвращаемое значение
None.
Пример
"Пример csv.writer.writerows.\nСреда: встроенный MicroPython FEMM 5.\nЗаписывает несколько строк.\nРезультат: None."
import csv
import io
s=io.StringIO()
w=csv.writer(s,delimiter=';',lineterminator='\n')
w.writerows([[10,0.2],[20,0.4]])
assert s.getvalue().count('\n') == 2
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.DictReaderСвязывает поля с названиями столбцов.
csv.DictReader
DictReader(f, fieldnames=None, restkey=None, restval=None, dialect=None, **fmtparams)Связывает поля с названиями столбцов.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
f | Итерируемые строки. |
fieldnames | Список столбцов; None читает заголовок из первой строки. |
restkey | Ключ списка лишних полей. |
restval | Значение отсутствующего поля. |
dialect | Имя/объект диалекта. |
fmtparams | Переопределения формата. |
Возвращаемое значение
Итератор OrderedDict.
Пример
"Пример csv.DictReader.\nСреда: встроенный MicroPython FEMM 5.\nСвязывает поля с названиями столбцов.\nРезультат: Итератор OrderedDict."
import csv
r=csv.DictReader(['I_A;B_T\n','10;0.2\n'],delimiter=';')
row=next(r)
assert row['B_T'] == '0.2'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.DictWriterЗаписывает словари в фиксированном порядке столбцов.
csv.DictWriter
DictWriter(f, fieldnames, restval="", extrasaction="raise", dialect=None, **fmtparams)Записывает словари в фиксированном порядке столбцов.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
f | Текстовый поток. |
fieldnames | Порядок столбцов. |
restval | Заполнитель отсутствующего ключа. |
extrasaction | raise для ошибки на лишних ключах либо ignore. |
dialect | Имя/объект диалекта. |
fmtparams | Параметры CSV. |
Возвращаемое значение
Объект DictWriter.
Пример
"Пример csv.DictWriter.\nСреда: встроенный MicroPython FEMM 5.\nЗаписывает словари в фиксированном порядке столбцов.\nРезультат: Объект DictWriter."
import csv
import io
s=io.StringIO()
w=csv.DictWriter(s,['I_A','B_T'],lineterminator='\n')
w.writerow({'B_T':0.2,'I_A':10})
assert s.getvalue() == '10,0.2\n'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.DictWriter.writeheaderЗаписывает названия столбцов.
csv.DictWriter.writeheader
writer.writeheader()Записывает названия столбцов.
Аргументы
Аргументы не требуются.
Возвращаемое значение
Результат writerow, обычно число символов.
Пример
"Пример csv.DictWriter.writeheader.\nСреда: встроенный MicroPython FEMM 5.\nЗаписывает названия столбцов.\nРезультат: Результат writerow, обычно число символов."
import csv
import io
s=io.StringIO()
w=csv.DictWriter(s,['I_A','B_T'],lineterminator='\n')
w.writeheader()
assert s.getvalue() == 'I_A,B_T\n'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.DictWriter.writerowЗаписывает словарь согласно fieldnames.
csv.DictWriter.writerow
writer.writerow(rowdict)Записывает словарь согласно fieldnames.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
rowdict | Словарь значений по имени столбца. |
Возвращаемое значение
Результат write, обычно число символов.
Пример
"Пример csv.DictWriter.writerow.\nСреда: встроенный MicroPython FEMM 5.\nЗаписывает словарь согласно fieldnames.\nРезультат: Результат write, обычно число символов."
import csv
import io
s=io.StringIO()
w=csv.DictWriter(s,['I_A','B_T'],lineterminator='\n')
w.writerow({'I_A':10,'B_T':0.2})
assert s.getvalue() == '10,0.2\n'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.DictWriter.writerowsЗаписывает серию словарей.
csv.DictWriter.writerows
writer.writerows(rowdicts)Записывает серию словарей.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
rowdicts | Итерируемые словари. |
Возвращаемое значение
None.
Пример
"Пример csv.DictWriter.writerows.\nСреда: встроенный MicroPython FEMM 5.\nЗаписывает серию словарей.\nРезультат: None."
import csv
import io
s=io.StringIO()
w=csv.DictWriter(s,['I_A','B_T'],lineterminator='\n')
w.writerows([{'I_A':10},{'I_A':20}])
assert s.getvalue().count('\n') == 2
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.field_size_limitОграничивает накопление слишком длинного поля; исходный предел 131072.
csv.field_size_limit
field_size_limit(new_limit=None)Ограничивает накопление слишком длинного поля; исходный предел 131072.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
new_limit | Новый предел длины одного поля в символах; None только читает предел. |
Возвращаемое значение
Предыдущее целое значение предела.
Пример
"Пример csv.field_size_limit.\nСреда: встроенный MicroPython FEMM 5.\nОграничивает накопление слишком длинного поля; исходный предел 131072.\nРезультат: Предыдущее целое значение предела."
import csv
old=csv.field_size_limit()
assert isinstance(old,int) and old > 0
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.get_dialectПолучает набор правил CSV; неизвестное имя вызывает csv.Error.
csv.get_dialect
get_dialect(name)Получает набор правил CSV; неизвестное имя вызывает csv.Error.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
name | Зарегистрированное имя. |
Возвращаемое значение
Объект Dialect.
Пример
"Пример csv.get_dialect.\nСреда: встроенный MicroPython FEMM 5.\nПолучает набор правил CSV; неизвестное имя вызывает csv.Error.\nРезультат: Объект Dialect."
import csv
assert csv.get_dialect('excel').delimiter == ','
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.list_dialectsПеречисляет доступные пресеты.
csv.list_dialects
list_dialects()Перечисляет доступные пресеты.
Аргументы
Аргументы не требуются.
Возвращаемое значение
Список зарегистрированных имён.
Пример
"Пример csv.list_dialects.\nСреда: встроенный MicroPython FEMM 5.\nПеречисляет доступные пресеты.\nРезультат: Список зарегистрированных имён."
import csv
assert 'excel' in csv.list_dialects()
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.register_dialectДобавляет повторно используемый формат таблицы.
csv.register_dialect
register_dialect(name, dialect=None, **fmtparams)Добавляет повторно используемый формат таблицы.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
name | Имя нового пресета. |
dialect | Базовый диалект или None. |
fmtparams | Переопределения полей формата. |
Возвращаемое значение
None.
Пример
"Пример csv.register_dialect.\nСреда: встроенный MicroPython FEMM 5.\nДобавляет повторно используемый формат таблицы.\nРезультат: None."
import csv
csv.register_dialect('femm_semicolon',delimiter=';')
assert csv.get_dialect('femm_semicolon').delimiter == ';'
csv.unregister_dialect('femm_semicolon')
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.unregister_dialectУдаляет только регистрацию формата.
csv.unregister_dialect
unregister_dialect(name)Удаляет только регистрацию формата.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
name | Имя удаляемого зарегистрированного пресета. |
Возвращаемое значение
None.
Пример
"Пример csv.unregister_dialect.\nСреда: встроенный MicroPython FEMM 5.\nУдаляет только регистрацию формата.\nРезультат: None."
import csv
csv.register_dialect('femm_demo',delimiter=';')
csv.unregister_dialect('femm_demo')
assert 'femm_demo' not in csv.list_dialects()
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.SnifferСоздаёт эвристический анализатор образца.
csv.Sniffer
Sniffer()Создаёт эвристический анализатор образца.
Аргументы
Аргументы не требуются.
Возвращаемое значение
Объект определения формата.
Пример
"Пример csv.Sniffer.\nСреда: встроенный MicroPython FEMM 5.\nСоздаёт эвристический анализатор образца.\nРезультат: Объект определения формата."
import csv
d=csv.Sniffer().sniff('I;B\n10;0.2\n20;0.4\n',delimiters=';')
assert d.delimiter == ';'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.Sniffer.sniffОценивает разделители и кавычки; неоднозначный или пустой образец может вызвать csv.Error.
csv.Sniffer.sniff
sniffer.sniff(sample, delimiters=None)Оценивает разделители и кавычки; неоднозначный или пустой образец может вызвать csv.Error.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
sample | Текст нескольких строк таблицы. |
delimiters | Допустимые символы разделителя или None. |
Возвращаемое значение
Подкласс Dialect с найденными правилами.
Пример
"Пример csv.Sniffer.sniff.\nСреда: встроенный MicroPython FEMM 5.\nОценивает разделители и кавычки; неоднозначный или пустой образец может вызвать csv.Error.\nРезультат: Подкласс Dialect с найденными правилами."
import csv
d=csv.Sniffer().sniff('I;B\n10;0.2\n20;0.4\n',';')
assert d.delimiter == ';'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.Sniffer.has_headerСравнивает типы/длины первой и последующих строк; это оценка, а не доказательство.
csv.Sniffer.has_header
sniffer.has_header(sample)Сравнивает типы/длины первой и последующих строк; это оценка, а не доказательство.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
sample | Несколько строк CSV, включая предполагаемый заголовок. |
Возвращаемое значение
bool.
Пример
"Пример csv.Sniffer.has_header.\nСреда: встроенный MicroPython FEMM 5.\nСравнивает типы/длины первой и последующих строк; это оценка, а не доказательство.\nРезультат: bool."
import csv
assert isinstance(csv.Sniffer().has_header('I,B\n10,0.2\n20,0.4\n'),bool)
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.excelСоздаёт пресет excel с заданными разделителями и кавычками.
csv.excel
excel()Создаёт пресет excel с заданными разделителями и кавычками.
Аргументы
Аргументы не требуются.
Возвращаемое значение
Объект готового Dialect.
Пример
"Пример csv.excel.\nСреда: встроенный MicroPython FEMM 5.\nСоздаёт пресет excel с заданными разделителями и кавычками.\nРезультат: Объект готового Dialect."
import csv
assert csv.excel().delimiter == ','
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.excel_tabСоздаёт пресет excel_tab с заданными разделителями и кавычками.
csv.excel_tab
excel_tab()Создаёт пресет excel_tab с заданными разделителями и кавычками.
Аргументы
Аргументы не требуются.
Возвращаемое значение
Объект готового Dialect.
Пример
"Пример csv.excel_tab.\nСреда: встроенный MicroPython FEMM 5.\nСоздаёт пресет excel_tab с заданными разделителями и кавычками.\nРезультат: Объект готового Dialect."
import csv
assert csv.excel_tab().delimiter == '\t'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
csv.unix_dialectСоздаёт пресет unix_dialect с заданными разделителями и кавычками.
csv.unix_dialect
unix_dialect()Создаёт пресет unix_dialect с заданными разделителями и кавычками.
Аргументы
Аргументы не требуются.
Возвращаемое значение
Объект готового Dialect.
Пример
"Пример csv.unix_dialect.\nСреда: встроенный MicroPython FEMM 5.\nСоздаёт пресет unix_dialect с заданными разделителями и кавычками.\nРезультат: Объект готового Dialect."
import csv
assert csv.unix_dialect().delimiter == ','
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
Имена в установленной сборке
Перечень получен во встроенном интерпретаторе. Он включает функции, классы и константы. Ссылки ведут к контрактам; для прямого доступа ulab учитывайте условия этого раздела.
DialectDictReaderDictWriterErrorOrderedDictQUOTE_ALLQUOTE_MINIMALQUOTE_NONEQUOTE_NONNUMERICQUOTE_NOTNULLQUOTE_STRINGSSnifferexcelexcel_tabfield_size_limitget_dialectlist_dialectsreaderregister_dialectunix_dialectunregister_dialectwriter