我编写了一个脚本来从(相当混乱的)数据文件中导入数据。每行都在循环中单独读取和处理。
我编写了以下代码来跳过标题和白线:
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?你对如何解决这个问题有任何建议吗?
答案 0 :(得分:2)
我建议不要调用readlines(),而是依赖于python文件迭代器模式。
for line in rd_file:
line_1 = line.rstrip("\n")
...