Самый маленький язык обучения для работы с файлами CSV - PullRequest
17 голосов
/ 27 июля 2010

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

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

Ответы [ 13 ]

14 голосов
/ 27 июля 2010

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

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

6 голосов
/ 27 июля 2010

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

РЕДАКТИРОВАТЬ: просто привести несколько основных примеров

# 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)
5 голосов
/ 27 июля 2010

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

5 голосов
/ 27 июля 2010

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

3 голосов
/ 27 июля 2010

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

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

3 голосов
/ 27 июля 2010

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

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

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]
            };
  1. .NET: Linq to CSV library .
  2. .NET: чтение CSV с помощью LINQ
  3. Python: чтение файла CSV
2 голосов
/ 27 июля 2010

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

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

2 голосов
/ 27 июля 2010

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

2 голосов
/ 27 июля 2010

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

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

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

2 голосов
/ 27 июля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...