Joh*_*alt 6 python memory os.walk
我编写了一个扫描程序,用于查找扫描系统的所有硬盘驱动器上的某些文件.其中一些系统很老,运行带有256或512 MB RAM的Windows 2000,但文件系统结构很复杂,因为其中一些用作文件服务器.
我在我的脚本中使用os.walk()来解析所有目录和文件.
不幸的是我们注意到扫描仪经过一段时间的扫描后消耗了大量的RAM,我们发现os.walk功能在文件系统上行走2小时之后就会使用大约50 MB的RAM.此RAM使用量随着时间的推移而增加.扫描4小时后,我们有大约90 MB的RAM.
有没有办法避免这种行为?我们还尝试了"betterwalk.walk()"和"scandir.walk()".结果是一样的.我们是否必须编写自己的walk函数,从内存中删除已扫描的目录和文件对象,以便垃圾收集器可以不时删除它们?

谢谢
小智 1
你尝试过 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
825 次 |
| 最近记录: |