Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        5年前关闭。
                                                                                            
                
        
我不是经验丰富的python编码人员,所以请保持谦虚。

我有一个非常大的二进制文件(100 Gb),需要一个特定的命令行工具(在此称为parseTool)对其进行解析。 parseTool输出的格式是简单的原始文本,我正在对其进行一些基本处理(对值进行计数等)。

在考虑在一个群集上运行我的代码的多个实例之前,我想确保自己在合理地有效地做事情。

这是我用来迭代parseTool输出的内容:

proc = subprocess.Popen(procTool +' myFile.file ',
                        shell=True,
                        stdout=subprocess.PIPE)
for line in proc.stdout:
    linep=line.split("\t")
    #process each line until end of stream


需要明确的是,我主要关心的是有效地迭代parseTool的输出。有任何有用的提示吗?

最佳答案

您的代码非常好,并且假设“ parseTool”也正确地进行流传输并且文本输出没有很长的行,则可以有效地“流化”数据。

如果确实有长行(特别是那些行会随输入缩放,而不是具有一定的上限),则您需要注意读取小于一行的块,而不是读取整行然后将其分割。

关于python - python遍历非常大的文件流,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23873821/

10-14 19:08
查看更多