Откройте или вставьте CSV-файл — TSV появится в предпросмотре, а Скачать TSV сохранит его в файл .tsv. Запятые внутри значений в TSV не требуют кавычек, так что большинство строк выходит обычным текстом с табуляциями. Решить по-настоящему нужно одно: что делать с табуляциями и переносами строк внутри значения — взять его в кавычки для Excel и pandas, экранировать обратной косой чертой для PostgreSQL или заменить пробелом для строгих программ чтения TSV. Файл конвертируется в вашем браузере и никогда не загружается на сервер.
Как преобразовать CSV в TSV
- Откройте файл
.csv,.tsvили.txt, перетащите его на инструмент или вставьте строки. Разделитель определяется автоматически; при необходимости задайте его или устаревшую кодировку, например Windows-1251 или Windows-1252, в разделе Параметры импорта. - В разделе Табуляции и переносы строк в значениях выберите вариант, который ожидает программа, читающая TSV. Затем задайте Концы строк и Включить строку заголовков.
- Выберите Кодировка результата и нажмите Скачать TSV или Копировать.
Чтобы преобразовать несколько CSV-файлов с одинаковыми настройками, выберите Пакетная конвертация нескольких файлов. Каждый файл читается с автоопределением разделителя и строкой заголовков, а результаты скачиваются вместе одним ZIP-архивом.
Табуляция, переносы строк и кодировка
| Брать значение в кавычки (Excel, pandas) | Вариант по умолчанию. Значение с табуляцией, переносом строки, двойной кавычкой или пробелом в начале или конце заключается в двойные кавычки, а внутренние кавычки удваиваются — по тем же правилам, что и в CSV, только с табуляцией в качестве разделителя. Всё остальное записывается без кавычек. |
|---|---|
| Экранировать обратной косой чертой \t \n (PostgreSQL) | Кавычки не используются никогда. Табуляция становится \t, перевод строки — \n, возврат каретки — \r, а обратная косая черта — \\, так что каждая запись остаётся на одной строке. Это текстовый формат, который читает COPY в PostgreSQL; двойные кавычки записываются как обычные символы. |
| Заменять пробелами (строгий TSV) | Каждая табуляция, перенос строки или пара CRLF внутри значения заменяется одним пробелом, и файл соответствует правилу IANA, по которому в полях нет табуляций. Обратные косые черты и кавычки остаются как есть. Это меняет данные, и инструмент сообщает, сколько значений затронуто. |
| Концы строк | Windows (CRLF) (по умолчанию) или Unix и macOS (LF) после каждой записи, включая последнюю. |
| Включить строку заголовков | Отключите, чтобы записать только строки данных, — например, при дописывании в существующую таблицу. |
| Защитить от выполнения формул | По умолчанию включено. Перед значениями, которые начинаются с =, +, -, @, табуляции или возврата каретки, ставится ', чтобы электронная таблица показала их как текст. Простые числа вроде -12.5 не меняются. Отключите, если TSV идёт в базу данных или скрипт и значения должны сохраниться в точности. |
| Кодировка результата | UTF-8, UTF-8 с BOM (для Excel), UTF-16 LE (с меткой порядка байтов) или Windows-1252. Windows-1252 останавливает работу с сообщением, где названы символы, которые нельзя в ней сохранить, — например, кириллица. |
Запятые, многострочные ячейки и идентификаторы в TSV
- Запятым в кавычках в TSV ничего не нужно:
"Desk lamp, brass"становитсяDesk lamp, brass. - Многострочная ячейка остаётся одним значением. С кавычками она занимает несколько строк внутри кавычек, с экранированием — записывается в одну строку как
Ships in 2 boxes\nfragile. - Ведущие нули и длинные идентификаторы записываются в точности: в TSV нет типов, поэтому
00731остаётся00731. - При экранировании путь Windows вроде
C:\tempзаписывается какC:\\temp, так что программа, раскодирующая escape-последовательности, получит исходное значение. - Если в строке больше значений, чем в заголовке, появляются дополнительные столбцы
Column 4,Column 5…; короткая строка дополняется пустыми значениями. Пустые заголовки превращаются вColumn 3, повторяющиеся — вname (2).
Если TSV загружается неправильно
- При загрузке строки разрываются посередине. Программа чтения не понимает переносы строк в кавычках. Выберите Экранировать обратной косой чертой \t \n (PostgreSQL), если она раскодирует escape-последовательности, или Заменять пробелами (строгий TSV), если нет.
- Значения начинаются с апострофа. Так работает Защитить от выполнения формул. Для импорта в базу данных или скрипт отключите эту настройку.
- В электронной таблице видны коды с обратной косой чертой. В ячейке написано
\nили\t, потому что электронные таблицы не раскодируют такие последовательности. Для файлов, предназначенных для Excel или LibreOffice, используйте Брать значение в кавычки (Excel, pandas). - Всё оказалось в одном столбце. Разделитель исходного файла определён неверно: задайте его в разделе Параметры импорта и откройте файл заново.
Ограничения и большие файлы
Файлы до 25 МБ, 100 000 строк, 250 столбцов и 2 млн ячеек открываются с живым предпросмотром. Бо́льшие файлы конвертируются в потоковом режиме: файл читается частями дважды — сначала чтобы найти самую длинную запись, затем чтобы записать результат, — и скачанный файл содержит все строки в том же виде, какой показал бы предпросмотр. Кнопка Копировать для таких файлов недоступна, а один результат ограничен 4 ГБ.
В потоковом режиме кодировка определяется автоматически (UTF-8 или UTF-16, если файл начинается с метки порядка байтов), а первая строка считается строкой заголовков.
Конвертация идёт в фоновом обработчике в этой вкладке; Отмена её останавливает. Чтобы сменить разделитель, сохранив кавычки по правилам CSV, используйте смену разделителя и кодировки CSV; для таблицы, которую нужно вставить в документацию, — CSV в Markdown.
Пример: список заказов в формате TSV
Список заказов с запятой в кавычках, двухстрочной заметкой и значением, похожим на формулу, преобразованный с настройками по умолчанию (Брать значение в кавычки (Excel, pandas), защита от формул включена; показан с окончаниями строк LF). С Экранировать обратной косой чертой \t \n (PostgreSQL) заметка становится Ships in 2 boxes\nfragile в одну строку, а значение-формула записывается без кавычек.
id,product,note
00731,"Desk lamp, brass","Ships in 2 boxes
fragile"
00732,Cable tidy,"=HYPERLINK(""x"")"id product note
00731 Desk lamp, brass "Ships in 2 boxes
fragile"
00732 Cable tidy "'=HYPERLINK(""x"")"Вопросы и ответы
Чем CSV отличается от TSV?
Только разделителем и связанными с ним правилами. В TSV поля разделены табуляцией, поэтому запятым в значениях кавычки не нужны. Определение IANA запрещает табуляции внутри полей, поэтому программы и расходятся в том, как их записывать.
Какой вариант выбрать для COPY в PostgreSQL?
Экранировать обратной косой чертой \t \n (PostgreSQL), с отключённой защитой от формул. Текстовый формат PostgreSQL по умолчанию использует разделитель-табуляцию и раскодирует \t, \n, \r и \\. Пустое значение загружается как пустая строка, потому что маркер NULL по умолчанию в этом формате — \N; чтобы пустые значения загружались как NULL, добавьте в параметры COPY NULL ''.
Можно ли преобразовать TSV обратно в CSV?
Да: откройте TSV в инструменте «Смена разделителя и кодировки CSV». Разделитель-табуляция определится автоматически, и вы сможете выбрать для результата запятую или точку с запятой. Последовательности с обратной косой чертой читаются как обычные символы, без раскодирования.