代码之家  ›  专栏  ›  技术社区  ›  c0rnh0li0

如何处理1GB的文本数据?

  •  4
  • c0rnh0li0  · 技术社区  · 14 年前

    处理3个大小接近1GB的文本文件并将其转换为csv文件。源文件有一个自定义的结构,所以正则表达式很有用。

    问题: 没有问题。我用php做的,很好。我其实不需要更快地处理文件。我只是好奇你一般怎么处理这个问题。最后,我希望看到一些简单方便的解决方案,它们的性能可能比php更快。

    我敢肯定。:)如果我完成了整个项目,我可能会将其发布为跨语言代码乒乓球。

    @标记

    5 回复  |  直到 14 年前
        1
  •  0
  •   RolandasR    14 年前
        2
  •  6
  •   Mark Byers    14 年前

    首先,使用哪种语言可能并不重要,因为它可能会受到I/O的限制。更重要的是你要使用有效的方法/算法。尤其要避免在可能的情况下将整个文件读入内存,并避免在将结果写入磁盘之前将其连接成一个巨大的字符串。

        3
  •  1
  •   High Performance Mark    14 年前

    我会伸手去拿的 sed .

        4
  •  1
  •   pdehaan    14 年前

    我将如何处理您询问的大量文本数据? perl -p 's/regex/magic/eg' (或一些类似的/更复杂的变化)。

        5
  •  0
  •   Daniel Andersson    14 年前

    Perl是文本处理的老大师,这是有充分理由的。不过,我相信Perl的很多优点现在都可以在Python中找到,而且更易于访问,所以当涉及到文本解析时,我通常会运行Python(我以前用Python解析过GB文件)。

    AWK或sed的速度可能也很快,但不像Perl-och-Python那么容易扩展。在您的特定情况下,除了解析和重新格式化输出之外,您不想做更多的事情,但是如果您想做更多的事情,那么使用Perl/Python就更容易了。

    我真的找不到反对Python和其他东西的论据,所以我想这是我的建议。