Python 读取数据文件时内存泄漏

Python 读取数据文件时内存泄漏,python,memory-leaks,readfile,memory-profiling,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.

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

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

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:       
        [...]
运行脚本时,我注意到内存泄漏。我使用找到它,我发现它是由于:

elif line.strip() == "": 
  pass 
这是我从
内存\u profiler
中得到的:

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

怎么可能只跳过一个空行就占用了160MB?您对如何解决这个问题有什么建议吗?

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

for line in rd_file:
    line_1 = line.rstrip("\n")   
    ...

数据文件有多大?我怀疑您错误地使用了探查器。单独的行有多大?我必须使用readlines,因为我正在处理一个spt文件,如果我对rd_文件中的行使用
我会对rd_文件中的行()得到错误
:TypeError:“file”对象不可调用。如果您有关于如何解决此问题的建议,请告诉我您的拼写错误。在rd_文件之后松开parens。python docs.Right中详细介绍了以迭代器模式使用文件对象。我做了建议的更改,但没有修复漏洞。我需要查看更多代码。我现在正在使用上面在project中描述的模式,它可以毫无问题地遍历20GB的文本文件。了解您对读取文件内容所做的操作也可能很有用。。。您没有将其存储在某种内存缓冲区中,是吗?我做了一些更改并重新分析了代码。泄漏可能是由于OpenCV造成的,我使用OpenCV使用
cv2.imread加载tif图像:看起来垃圾收集器没有清理保存在内存中的图像文件。