CSV в TSV: простой способ и онлайн-конвертер

💻 IT и кодОбновлено: 13 июля 2026 г.5 мин чтения
При работе с данными часто нужно перевести CSV в TSV — форматы отличаются только разделителем, но баги с экранированием, кавычками и Unicode могут испортить всю базу. Разбираем все способы на 2026 год: от однострочных команд до онлайн-конвертера.
⚡ Коротко: главное
  • CSV использует запятые, TSV — табуляцию; в TSV реже нужны кавычки, поэтому он компактнее.
  • Правильная конвертация требует экранирования кавычек и табуляций внутри полей.
  • Стандарт RFC 4180 (CSV) и IANA (TSV) различают обязательное экранирование.
  • Онлайн-конвертер CSV в TSV мгновенно переводит файлы до 50 МБ с автоопределением диалекта.
  • Для больших файлов (гигабайты) используйте awk или Python — консольные утилиты не загружают всё в память.

Что такое CSV и TSV и в чём разница

CSV (Comma-Separated Values) и TSV (Tab-Separated Values) — текстовые форматы табличных данных. Разница только в разделителе: в CSV это запятая (,), в TSV — табуляция (\t).

Из-за разделителя возникают различия в экранировании:

  • В CSV поля с запятыми, кавычками или переносами строк обязательно заключаются в двойные кавычки, а кавычки внутри удваиваются.
  • В TSV экранирование нужно только для табуляции и символов перевода строки; кавычки можно не использовать, если поля не содержат табуляцию.

Пример идентичных данных в CSV и TSV:

CSV:
"Name","Age","City"
"John, Doe","25","New York"
"Jane \"Smith\"","30",""

TSV:
Name\tAge\tCity
John, Doe\t25\tNew York
Jane "Smith"\t30\t

Конвертация CSV в TSV с помощью Python

Python с модулем csv — самый надёжный способ для сложных случаев. Учитывает все правила экранирования.

Пример конвертации файла data.csv в data.tsv:

import csv

with open('data.csv', 'r', newline='', encoding='utf-8') as f_in:
    reader = csv.reader(f_in)
    with open('data.tsv', 'w', newline='', encoding='utf-8') as f_out:
        writer = csv.writer(f_out, delimiter='\t', quoting=csv.QUOTE_MINIMAL)
        for row in reader:
            writer.writerow(row)

Подводные камни:

  • Разные диалекты CSV (excel, unix) — задавайте dialect='excel' если нужно.
  • Кодировка: если файл в cp1251, укажите encoding='cp1251'.
  • Поля с табуляцией внутри — Python автоматически заключит их в кавычки.
Если файл содержит многострочные поля, обязательно укажите newline='', иначе чтение сломается.

Конвертация через командную строку (awk, sed)

Для быстрой замены разделителя без экранирования (когда поля чистые) — используйте консольные утилиты.

КомандаОписаниеПример
tr ',' '\t'Простая замена запятой на табуляциюtr ',' '\t' < file.csv > file.tsv
sed 's/,/\t/g'Замена через регулярное выражениеsed 's/,/\t/g' file.csv > file.tsv
awk -v FPAT='([^,]+)|("[^"]+")' ...Учёт кавычек (частичный)awk 'BEGIN{FS=",";OFS="\t"}{for(i=1;i<=NF;i++) gsub(/^"/,"",$i); gsub(/"$/,"",$i); print}' file.csv

Важно: Эти методы не обрабатывают экранированные кавычки и запятые внутри полей. Только для простых CSV без кавычек.

Если данные содержат кавычки, никогда не используйте простую замену запятых — вы сломаете структуру.

Онлайн-конвертер: CSV в TSV

Самый простой способ для одноразовой конвертации или для пользователей без технического опыта — воспользоваться нашим CSV в TSV онлайн-конвертером.

Возможности:

  • Автоматическое определение диалекта CSV (разделитель, символ кавычек, экранирование).
  • Поддержка файлов до 50 МБ.
  • Настройка кодировки (UTF-8, Windows-1251, KOI8-R).
  • Сохранение результата в TSV или копирование в буфер.

Просто загрузите CSV-файл и скачайте TSV — никаких настроек.

Если нужно конвертировать и в другие форматы: CSV в JSON, CSV в XML, CSV в XLSX, CSV в SQL INSERT.
Процесс конвертации CSV в TSV
  1. 1
    1. Определить диалект CSV

    Узнать разделитель, символ кавычек и экранирование.

  2. 2
    2. Выбрать инструмент

    Python для сложных, онлайн-конвертер для простых файлов.

  3. 3
    3. Проверить кодировку

    Указать правильную кодировку во избежание кракозябр.

  4. 4
    4. Выполнить конвертацию

    Запустить скрипт или загрузить файл в конвертер.

  5. 5
    5. Проверить первые строки

    Убедиться, что табуляции и кавычки корректны.

  6. 6
    6. Проверить количество столбцов

    Все строки должны иметь одинаковое количество полей.

  7. 7
    7. Использовать данные

    TSV готов для импорта в базы, Excel или анализа.

Пошаговое руководство для идеального результата

Конвертация на языках программирования (bash, PowerShell, PHP)

Краткие решения для разных окружений:

ИнструментКоманда/кодПримечание
Bash + mlr (Miller)mlr --csv --otsv cat data.csv > data.tsvУчитывает кавычки, поддерживает Unicode.
PowerShellImport-Csv data.csv | Export-Csv -Delimiter "`t" -NoTypeInformation data.tsvАвтоматически экранирует.
PHP$f=fopen('data.csv','r'); $w=fopen('data.tsv','w'); while(($r=fgetcsv($f))!==false) fputcsv($w,$r,"\t");Работает как Python.
Node.js (csv-parser)const csv=require('csvtojson'); csv().fromFile('data.csv').then(j=>{ /* write TSV */ });Требует дополнительной записи.

Выбор зависит от среды: Miller идеален для Linux, PowerShell — для Windows.

Чек-лист перед конвертацией CSV в TSV

0 из 8

Подводные камни и отладка

Частые ошибки при конвертации CSV в TSV:

  1. Пропуск экранирования: запятые внутри поля без кавычек при простой замене разделителя.
  2. Потеря многострочных полей: строки с переносами внутри — нужна обработка построчно.
  3. Некорректная кодировка: символы в cp1251 отображаются кракозябрами в UTF-8.
  4. Пробелы после запятых: невидимые пробелы становятся частью данных — используйте strip().

Как отлаживать:

  • Проверьте первые 10 строк TSV: head -10 file.tsv | cat -A (табуляции покажутся как ^I).
  • Сравните количество столбцов: awk -F'\t' '{print NF}' file.tsv | sort | uniq -c — все строки должны иметь одинаковое число.
  • Используйте онлайн-конвертер CSV в TSV как эталон.

Какой способ выбрать?

Выбор зависит от размера данных и сложности:

  • Разовый небольшой файл (<50 МБ): используйте CSV в TSV онлайн — быстро и без ошибок.
  • Регулярная задача: напишите скрипт на Python — надёжно и настраиваемо.
  • Гигабайтные CSV: awk или Miller не загружают всё в память.
  • Windows-среда: PowerShell использует встроенные cmdlet’ы.
Если данные содержат много кавычек или переносов строк, избегайте однострочных sed/tr — используйте полноценный парсер.

Edge cases: пустые поля, кавычки, Unicode

Обработка граничных случаев критична для целостности данных.

  • Пустые поля: CSV: ,, → TSV: \t\t. Все инструменты корректно передают пустые значения.
  • Кавычки внутри поля: CSV: "He said ""Hello""" → TSV: He said "Hello" (кавычки не нужно экранировать, если нет табуляции).
  • Табуляция внутри поля: CSV: поле с табуляцией должно быть в кавычках; TSV: требуется экранирование табуляции (или заключение в кавычки). Пример: "col1\tcol2""col1\tcol2" (в TSV тоже в кавычках).
  • Unicode: эмодзи, кириллица, иероглифы. Проблемы только если исходный файл в однобайтовой кодировке.

Тестовый пример сложного CSV:

ID,Name,Notes
1,"John, Doe","Line1\nLine2"
2,"Jane ""Smith""","Tab\there"
3,,

После конвертации в TSV должно быть:

ID\tName\tNotes
1\tJohn, Doe\tLine1\nLine2
2\tJane "Smith"\tTab\there
3\t\t

Автоматизация конвертации

Для регулярной конвертации интегрируйте скрипт в пайплайн.

Пример bash-функции для конвертации всех CSV в папке:

csv2tsv() {
    for f in "$@"; do
        python3 -c "import csv,sys; r=csv.reader(sys.stdin); w=csv.writer(sys.stdout,delimiter='\t')
for row in r: w.writerow(row)" < "$f" > "${f%.csv}.tsv"
    done
}

Использование: csv2tsv *.csv.

Для CI/CD можно использовать онлайн-конвертер через API (если доступен).

🧮 Посчитайте сами — инструменты по теме

🧭 Разделы по теме

Частые вопросы

Чем отличается CSV от TSV?

CSV использует запятую в качестве разделителя полей, TSV — табуляцию. В CSV чаще требуется экранирование кавычками, в TSV — реже.

Можно ли конвертировать CSV в TSV без потери данных?

Да, если использовать инструмент, учитывающий экранирование (Python, Miller, онлайн-конвертер). Простая замена запятых на табуляцию сломает данные с кавычками.

Как конвертировать CSV в TSV в Python?

Используйте модуль csv: csv.reader для чтения и csv.writer с delimiter='\t' для записи. Укажите кодировку и режим newline=''.

Как конвертировать CSV в TSV в командной строке Linux?

Для простых файлов: tr ',' '\t' file.tsv. Для сложных: используйте Miller (mlr --csv --otsv cat) или awk с учётом кавычек.

Есть ли онлайн-конвертер CSV в TSV?

Да, на нашем сайте: CSV в TSV. Поддерживает файлы до 50 МБ, автоопределение диалекта.

Какие ошибки возможны при конвертации?

Потеря кавычек, появление лишних табуляций, проблема с кодировкой, разное количество столбцов. Используйте чек-лист выше.

Можно ли конвертировать CSV в TSV в Excel?

Да, откройте CSV в Excel, сохраните как «Текст с разделителями табуляции» (TSV). Но Excel может изменить кодировку или округлить числа.

Что делать, если CSV содержит переносы строк внутри полей?

Не используйте простые замены. Используйте Python или онлайн-конвертер, которые корректно обрабатывают многострочные поля.

Источники и нормативные документы

  1. RFC 4180 — Common Format and MIME Type for CSV Files
  2. IANA — Tab-Separated Values (TSV) registry
  3. Python csv module documentation
  4. Miller — command-line CSV/TSV processor

Ещё по теме «IT и код»