我有一个程序,该程序执行一些繁重的处理(ML算法),并将大量数据(读取GB的纯文本)写入标准输出。在某些特定情况下,我只需要输出的一小部分,但是现在我要保存一个(巨大的)文本文件,然后解析其中的行以获取数据。
虽然完全有效,但我的方法非常有效。有没有一种方法可以避免生成如此大的文件(因为大多数数据无论如何都会被删除),并且可以逐行进行动态解析。
执行:
./myProgram model test > myOutput
myOutput内容(百万行):
0, blah blah blah thousand of more blahs -> [ I care data inside brackets ]
0, blah blah blah thousand of more blahs -> [ I care data inside brackets ]
....
我认为最好的选择是使用unix管道链接结果,但是我不知道如何逐行发送数据到python或java应用程序来解析它。
./myProgram model test | <now what>
要在脚本中读取和写入数据,您只想用于过滤数据,只需在标准输入/输出之间进行读写即可。
./myProgram model test | ./filter.py > myOutput
filter.py:
import sys
for line in sys.stdin:
if some_condition:
sys.stdout.write(line)
如果只需要在数据中包含某些模式的条件而您不需要脚本,则可以简单地使用grep
以下行进行过滤:
./myProgram model test | grep 'interesting_pattern' > myOutput
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句