我有一个用逗号分隔的大文件~10gb。每行以一个2字符的代码开头,该代码指示它是哪种类型的行,因为每一行都是不同类型的事件。目前我将文件读入R,然后使用正则表达式根据代码将其拆分为不同的部分,然后将生成的对象写入平面文件。在
我很好奇是否有更直接的方法来完成这项工作(读取一行,确定行类型并将该行附加到适当的平面文件中(总共有7个)),比如Python、bash、sed/awk等等
数据如下:
01,tim@bigcompany.com,20140101120000,campaign1
02,201420140101123000,123321,Xjq12090,TX
02,201420140101123000,123321,Xjq12090,AK
...
如有任何建议,我们将不胜感激。在
如果您不关心性能,或不信任您的操作系统/文件系统/驱动器的磁盘缓存:
但是,不断地重新打开和重新关闭(并因此刷新)文件将意味着您永远无法获得缓冲的好处,而且只有这么多磁盘缓存可以弥补这一点,所以,您可能需要考虑预打开所有文件。因为只有7个,所以这很简单:
^{pr2}$或者,更有力地说:
(您可以编写一个
with
语句来自动完成关闭,但是在不同的Python版本中它会有所不同;这有点笨拙,但适用于从2.4到3.5甚至更高版本的所有内容,而且由于您还没有告诉我们您的平台或Python版本,这看起来更安全。)在Python中这样做怎么样:
使用awk可以:
如果您想在最后关闭所有文件句柄来保持干净,请使用此
^{pr2}$awk
:相关问题 更多 >
编程相关推荐