最小的学习曲线语言,可与CSV文件配合使用

时间:2010-07-26 22:15:15

标签: python excel vba csv

VBA不再为我裁掉它了。我有很多巨大的Excel文件,我需要进行大量的计算并将其分解为其他Excel / CSV文件。

我需要一种语言,我可以在接下来的几天内接受我需要的语言,因为这是一种紧急情况。我被建议python,但我想与你确认是否有其他任何快速,轻松地处理CSV文件。

13 个答案:

答案 0 :(得分:14)

Python是一个很好的选择。 csv模块可以轻松读取和写入CSV文件(即使是微软,呃,“特殊”版本),Python语法也是轻而易举的。

我实际上建议反对 Perl,如果你是新鲜的。虽然Perl肯定是强大而快速的,但对于那些不熟悉的人来说,它往往是神秘莫测的。

答案 1 :(得分:6)

你需要做什么样的计算?也许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)

答案 2 :(得分:5)

Python肯定有一个小的学习曲线,并且很好地适用于csv文件

答案 3 :(得分:5)

这项工作有很多工具,但是,Python现在可能是最好的。有一个特殊的模块来处理csv文件。查看官方docs

答案 4 :(得分:3)

你知道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: Read CSV with LINQ
  3. Python: Read CSV file

答案 5 :(得分:3)

你说你有“ excel 文件,我需要进行大量的计算并将其分解为其他 excel / csv文件”但到目前为止所有的答案再谈谈csv ......

Python有一个csv读/写模块,正如其他人提到的那样。还有第三方模块xlrd(读取)和xlwt(写入)XLS文件的模块。见the tutorial on this site

答案 6 :(得分:2)

Perl对于文本的脚本语言来说效率惊人。 cpan.org拥有大量用于处理CSV数据的模块。我也用另一个Perl模块以XLS格式编写和写入数据。如果你能够使用VBA,你当然可以学习Perl(Perl的基础知识很简单,尽管你或其他人编写简洁而神秘的代码同样容易。)

答案 7 :(得分:2)

这取决于您对文件的处理方式。

Python的学习曲线不像R那么陡峭。但是,R有许多内置函数,非常适合于轻松操作.csv文件,特别是出于统计目的。

编辑:我建议单独使用R over Python,只是因为基本操作(读取文件,删除行,删除列等)在R中写入稍快一些比在Python中。

答案 8 :(得分:2)

我试试awk。如果您正在运行Windows,则可以通过cygwin utilities获取awk。

答案 9 :(得分:2)

这可能不是任何人的流行语言,但由于CSV文件是面向行的并且分成字段,因此处理它们只是 awk 的完美应用。它是为处理面向行的文本数据而构建的,可以将其拆分为字段。

大多数其他语言人员将会更加通用,因此在他们中将有更多不适用于处理面向行的文本数据的语言。

答案 10 :(得分:1)

PowerShell内置了CSV import

语法像死亡一样丑陋,但它的设计对管理员而言比对程序员更有用 - 所以谁知道,你可能会喜欢它。

它应该是一种快速起来的语言,无论好坏。

答案 11 :(得分:0)

我很惊讶没有人建议PowerQuery;它非常适合将文件合并和导入到Excel中,可以很好地进行列计算,并且内置了良好的图形编辑器。适用于csvs和excel文件以及SQL数据库和您期望的大多数其他功能。我设法在一天之内就可以启动并运行一些基本的清理和格式化工作,也许花了几天的时间开始编写自己的函数(从GUI中释放出来)

并且由于它实际上只是做数据库的工作,因此有barely any functions可以学习(实际语言称为“ M”)

答案 12 :(得分:-1)

PHP有几个易于使用的csv函数: http://www.php.net/manual-lookup.php?pattern=csv&lang=en