dimayakovlev.ru


Импорт данных формата TSV в PowerShell

Формат TSV, как и формат CSV, это текстовый формат для представления таблиц баз данных, поэтому работа с ним в PowerShell не отличается от работы с CSV. Исключением является момент импорта данных, который вызвал проблему у читателя моих заметок о работе с PowerShell. Разберёмся с этим подробнее.

Для импортам данных из текстовых форматов используется командлет Import-Csv. Из файла в формате CSV данные импортируются так:

$data = Import-Csv -Path data.csv

Результат выполнения этого действия ожидаем и корректен если разделителем значений в текстовом файле является символ , (запятая). Если таким же образом выполнить импорт данных из файла в формате TSV, командлет не выдаст сообщение об ошибке, но результат импорта будет некорректен, работа с импортированными данными будет невозможна.

Отличие формата TSV от формата CSV - разделитель значений, символ табуляции вместо запятой. Так как командлет Import-Csv не может автоматически определить используемый разделитель, он имеет специальный параметр -Delimeter, задающий символ разделителя значений.

Но как передать символ табуляции параметру?

Символ табуляции входит в число специальных символов PowerShell. Зная, как задать символ табуляции, импорт данных из файла в формате TSV выполняется так:

$data = Import-Csv -Path data.tsv -Delimeter `t

Теперь данные должны быть импортированы корректно и готовы к дальнейшей работе с ними.

Если хотите попробовать на практике описанное, но нет файла с данными в формате TSV, нет электронной таблицы с данными, но установлен iTunes, можете создать плэйлист и экспортировать его в текстовом формате - значения в нём будут разделены символом табуляции.