读取数据文件时内存泄漏

时间:2014-02-20 13:08:27

标签: python memory-leaks readfile memory-profiling

我编写了一个脚本来从(相当混乱的)数据文件中导入数据。每行都在循环中单独读取和处理。

我编写了以下代码来跳过标题和白线:

for line in rd_file.readlines(): 
    line_1 = line.rstrip("\n")                                            
    # Decide what to do based on the content in the line.                    
    if "#" in line.lower(): 
        header_flag=True
        # Don't print the header  
        pass
    elif line.strip() == "":                                     
        pass
    else:       
        [...]

运行脚本我注意到内存泄漏。我使用memory_profiler找到了它,我发现它是由于:

elif line.strip() == "": 
  pass 

这是我从memory_profiler得到的:

45    204.5 MiB    160.6 MiB           elif line.strip() == ""

如何通过跳过空行来占用160 MB?你对如何解决这个问题有任何建议吗?

1 个答案:

答案 0 :(得分:2)

我建议不要调用readlines(),而是依赖于python文件迭代器模式。

for line in rd_file:
    line_1 = line.rstrip("\n")   
    ...
相关问题