gpt4 book ai didi

Python os.walk 内存问题

转载 作者:太空狗 更新时间:2023-10-30 00:17:23 27 4
gpt4 key购买 nike

我编写了一个扫描仪,用于在被扫描的系统的所有硬盘驱动器上查找某些文件。其中一些系统相当老旧,运行 Windows 2000,内存为 256 或 512 MB,但文件系统结构很复杂,因为其中一些系统用作文件服务器。

我在脚本中使用 os.walk() 来解析所有目录和文件。

不幸的是,我们注意到扫描器在扫描一段时间后消耗了大量 RAM,我们发现在遍历文件系统 2 小时后,仅 os.walk 函数就使用了大约 50 MB 的 RAM。此 RAM 使用量会随着时间的推移而增加。扫描 4 小时后,我们有大约 90 MB 的 RAM。

有没有办法避免这种行为?我们还尝试了“betterwalk.walk()”和“scandir.walk()”。结果是一样的。我们是否必须编写自己的 walk 函数从内存中删除已扫描的目录和文件对象,以便垃圾收集器可以不时删除它们?

resource usage over time - second row is memory

谢谢

最佳答案

你试过glob模块吗?

import os, glob

def globit(srchDir):
srchDir = os.path.join(srchDir, "*")
for file in glob.glob(srchDir):
print file
globit(file)

if __name__ == '__main__':
dir = r'C:\working'
globit(dir)

关于Python os.walk 内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24474172/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com