Разделители табуляции в CSV

Для проекта интеллектуального анализа данных мне нужно преобразовать 80 файлов с разделителями табуляции (по 100 МБ каждый) в файлы CSV. Кто-нибудь знает некоторые инструменты, которые могут быть удобны в этом случае.


person shubham90    schedule 14.11.2014    source источник
comment
Для этого есть много инструментов. Какую операционную систему ты используешь?   -  person jmunsch    schedule 14.11.2014
comment
Спасибо за ответ, у меня Windows 8.1. Или я могу переключиться, если есть какой-либо удобный инструмент, доступный в другой ОС.   -  person shubham90    schedule 14.11.2014
comment
Если вы не знакомы с какими-либо языками сценариев, я бы предложил Open Office Calc: заголовок stackoverflow.com/questions/2549800/ Пока файлы не превышают ограничения?: wiki.openoffice.org/wiki/Documentation/FAQ/Calc/Miscellaneous/ Или попробуйте установить python и используйте модуль csv.   -  person jmunsch    schedule 15.11.2014


Ответы (2)


Загрузите Python: https://www.python.org/downloads/

Установите его.

И запустите скрипт, подобный следующему.

Сохраните следующее как convert_tsv_to_csv.py или что-нибудь, оканчивающееся на .py:

import csv
with open('C:\\path\to\file','r') as f:
    tab_file = csv.reader(f, dialect=csv.excel_tab)

with open('C:\path\to\outfile.csv','w') as g:
    comma_file = csv.writer(g, dialect=csv.excel)

for row in tab_file:
    comma_file.writerow(row)

Измените пути и запустите его так: python convert_tsv_to_csv.py

Основная идея: если файлы большие, читайте их построчно.

person jmunsch    schedule 14.11.2014

Изучите основные инструменты.

В любой системе UNIX/Linux/OSX должны помочь следующие команды:

sed  -i    -e 's/\t/,/g' *.csv
perl -i -p -e 's/\t/,/g' *.csv

Они выполняют основную вкладку для замены запятой. Они не позаботятся о таких вещах, как цитирование и экранирование, если ваши данные содержат столбцы с табличными или запятыми, или изменение имени файла для вас! Обратите внимание, что синтаксис sed и perl очень похож... -i — редактирование на месте, -e — выполнение команды, s/// — синтаксис подстановки регулярных выражений. И т. д.

В любом случае, ваши основные инструменты Unix для этой работы:

  1. чрезвычайно быстрый ("потоковый редактор" sed хорошо оптимизирован, низкоуровневый код C)
  2. удобно (всего каких-то 10 нажатий клавиш!)
  3. прост в использовании, как только вы изучите основы (т.е. прочитаете руководство)
person Has QUIT--Anony-Mousse    schedule 15.11.2014