Самый маленький язык кривой обучения для работы с файлами CSV

VBA больше не режет для меня. У меня много огромных файлов Excel, для которых мне нужно сделать множество вычислений и разбить их на другие файлы Excel/CSV.

Мне нужен язык, который я могу забрать в течение следующих нескольких дней, чтобы делать то, что мне нужно, потому что это своего рода чрезвычайная ситуация. Мне предложили python, но я хотел бы проверить с вами, если есть что-то еще, что делает обработку файлов CSV быстро и легко.

Ответы

Ответ 1

Есть много инструментов для работы, но да, Python, пожалуй, лучше всего в наши дни. Существует специальный модуль для работы с csv файлами. Проверьте официальный docs.

Ответ 2

Python - отличный выбор. Модуль csv упрощает чтение и запись CSV файлов (даже версия Microsoft, "идиосинкразированная" ), а синтаксис Python - это легкий ветерок.

Я бы рекомендовал Perl, если вы придете к нему свежим. Хотя Perl, безусловно, мощный и быстрый, он часто загадочен до непонятного для непосвященных.

Ответ 3

Какой расчет вы должны сделать? Может быть, R будет альтернативой?

EDIT: просто для того, чтобы дать несколько основных примеров

# Basic usage
data <- read.csv("myfile.csv")

# Pipe-separated values
data <- read.csv("myfile.csv", sep="|")

# File with header (columns will be named as header) 
data <- read.csv("myfile.csv", header=TRUE)

# Skip the first 5 lines of the file
data <- read.csv("myfile.csv", skip=5)

# Read only 100 lines
data <- read.csv("myfile.csv", nrows=100)

Ответ 4

Python определенно имеет небольшую кривую обучения и хорошо работает с файлами csv

Ответ 5

Вы знаете VBA? Почему не Visual Basic 2008/2010, или, возможно, С#? Я уверен, что языки, такие как python и ruby, будут относительно легки для работы, но вы уже привыкли к ".NET-способу" делать вещи, поэтому имеет смысл продолжать работать с ними, а не изучать совершенно новую вещь только для этой работы.

Использование С#:

var csvlines = File.ReadAllLines("file.csv");

var query = from csvline in csvlines
            let data = csvline.Split(',')
            select new
            {
                ID = data[0],
                FirstName = data[1],
                LastName = data[2],
                Email = data[3]
            };

Ответ 6

Вы говорите, что у вас есть excel файлы, в которые мне нужно сделать множество вычислений и разбить их на другие excel/csv файлы ", но все ответы до сих пор говорить только о csv...

Python имеет модуль чтения/записи csv, о котором говорили другие. Существуют также модули сторонних разработчиков xlrd (чтение) и xlwt (записи) для файлов XLS. См. учебник на этом сайте.

Ответ 7

Perl удивительно эффективен для языка сценариев для текста. В cpan.org имеется огромное количество модулей для работы с данными CSV. Я также написал и написал данные в формате XLS с другим модулем Perl. Если вы смогли использовать VBA, вы, конечно же, можете научиться Perl (основы Perl просты, хотя для вас или других так же легко написать короткий, но загадочный код).

Ответ 8

Это зависит от того, что вы хотите делать с файлами.

Кривая обучения Python менее крутая, чем R. Тем не менее, R имеет кучу встроенных функций, которые очень хорошо подходят для работы с файлами .csv, особенно в статистических целях.

Изменить: Я бы рекомендовал R поверх Python только для этой цели, хотя бы потому, что основные операции (чтение файлов, удаление строк, удаление столбцов и т.д.) немного быстрее записываются в R чем в Python.

Ответ 9

Я бы дал awk. Если вы используете окна, вы можете получить awk через утилиты cygwin.

Ответ 10

Это может быть не кто-нибудь популярный язык du-jour, но так как CSV файлы ориентированы на линию и разбиваются на поля, дело в том, что это идеальное приложение для awk. Он был создан для обработки текстовых текстовых данных, которые можно разделить на поля.

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

Ответ 11

В PowerShell встроен импорт CSV.

Синтаксис уродливый как смерть, но он предназначен для того, чтобы быть полезным для администраторов больше, чем для программистов - так, кто знает, вам может понравиться.

Он должен быть быстрым языком "вверх-вниз", к лучшему и худшему.

Ответ 12

Я удивлен, что никто не предложил PowerQuery; он идеально подходит для консолидации и импорта файлов в Excel, хорошо выполняет вычисления столбцов и имеет хороший встроенный графический редактор. Работает как с CSVS и файлами Excel, так и с базами данных SQL и большинством других вещей, которые вы ожидаете. Мне удалось получить некоторые базовые средства для очистки и форматирования за один день, возможно, за несколько дней, чтобы начать писать свои собственные функции (вырваться из графического интерфейса)

И у него едва ли есть какие-то функции для изучения (реальный язык называется "М")